Bâtiment propre framework php
Je suis intéressé par la construction de mon propre framework php pour mon utilisation personnelle à faire mon codage vie plus facile. Je suis en train de faire ce que je suis assez (sorte de) l'utilisation de php maintenant, et ne pouvez pas sembler obtenir l'utilisation de tout cadre.
J'ai une idée de faire des charges de fonctions de dans un .fichier php. Comme j'ai commencé à le faire, dors pour envoyer en fonction mail, j'ai simplifié (pour mon utilisation):
function sendmail($to, $message, $subject, $from){//USE sendmail($to, $message, $subject, $from)
$headers = "From:";
$headers .= $from;
$headers .= "\r\n";
$headers .= "Reply-To:";
$headers .= $from;
$headers .= "\r\n";
$headers .= "X-Mailer: Drupal\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
mail($to, $subject, $message, $headers);
}
Ce sera ensuite utilisé dans un formulaire de contact:
sendmail($_POST['to'], $_POST['message'], $_POST['subject'], $_POST['from']);
Cette fonction mail fonctionne pour moi.
Cependant, je ne suis pas sûr du tout si c'est correct de faire un cadre comme ça. J'ai regardé dans les classes et les objets pour php, mais ne peux pas l'air de comprendre comme il n'est pas compréhensible, facile tutoriel.
Je déconseille à vous de créer votre propre cadre de référence, sauf si vous avez une bonne connaissance de PHP et vous le savez très bien plusieurs cadres existants. J'ai créé ma propre structure dans le passé, et juste perdu mon temps, découvrant alors que certains cadres sont beaucoup mieux que la mienne, et sont écrits par d'autres, beaucoup plus de développeurs expérimentés que moi.
Votre libellé choix "cadre" a été malheureuse comme l'a souligné ci-dessous. Aller de l'avant, de construire votre assemblée de l'utilitaire de code. C'est une approche très utile pour obtenir en PHP. Et vous allez être plus familier avec elle. (Également de la programmation orientée objet n'est pas le summum de la programmation. Pas en PHP.)
J'ai essayé de faire mon propre cadre de référence et jusqu'à maintenant, il réussi à faire ce que je veux. De ne jamais être bloqué à tout composant. Allez-y, faites votre propre trop !p.s. Lien : github.com/Blazing-PHP/Blazing-The-Framework
OriginalL'auteur ryryan | 2010-09-29
Vous devez vous connecter pour publier un commentaire.
Les gens vont vous dire de ne pas écrire votre propre cadre de référence, d'en utiliser un existant. Ne les écoute pas. C'est une bonne expérience d'apprentissage et de vous aider à comprendre les concepts qui vont rendre les autres cadres de faire beaucoup plus de sens pour vous.
Personnellement, j'ai besoin de comprendre 2 choses mieux avant de pouvoir utiliser d'autres peuples cadres (et évidemment écrire mon propre):
J'ai passé des journées de la lecture de la programmation orientée objet tutoriel sur PHP et chaque tutoriel/page wiki sur le MVC. Puis, comme une expérience d'apprentissage, j'ai écrit mon propre cadre de référence. Puis j'ai appris de mes erreurs et j'ai commencé à partir de zéro et a écrit un autre cadre. J'ai probablement écrit 5 versions. Alors j'ai décidé d'essayer le code de l'allumeur. Après tout, la lecture et la pratique, j'ai enfin compris.
Depuis que je l'utilise, d'autres peuples cadres.
Je pense que l'utilisation d'un cadre établi est un bon moyen de parfaire votre la programmation orientée objet le développement des compétences par voir de première main comment ils peuvent mieux être appliquée pour le développement web.
je suis d'accord, mais vous devez d'abord comprendre les concepts sous-jacents
J'ai fait quelque chose de similaire. J'ai écrit un site web pour mon propre usage comme un moyen d'apprendre à l'aide de PHP et utilisé de la programmation orientée objet. Finalement, j'ai couru dans un mur quand on veut ajouter des fonctionnalités - c'était trop douloureux avec mon cultivés à la maison trucs. Mais ensuite j'ai regardé Zend et réalisé que ce que j'avais essayé de faire était de construire un cadre. Après cela, j'ai jeté tous mes cultivés à la maison trucs et jointures vers le bas pour apprendre MVC. Je pense que vous n'avez pas vraiment apprécier un cadre jusqu'à ce que vous essayer de réinventer un mal!
+1 tout à fait vrai. Aussi, après l'écriture de votre cadre, vous aurez une nouvelle appréciation pour découvrir comment d'autres cadres de résoudre des problèmes similaires.
OriginalL'auteur Galen
Comme d'autres ici, je ne vois que des gains positifs à partir d'un utilisateur inexpérimenté de tenter d'écrire un cadre. Si ils sont à la recherche d'options existantes comme des modèles, et en fait en essayant d'utiliser le nouveau code et donc d'identifier ses faiblesses dans le but de les fixer, il peut être un excellent moyen de développer rapidement des connaissances. Cela dit, pour un nouvel utilisateur, je voudrais peut-être réfléchir à deux fois avant de l'utiliser dans une application de production; puis de nouveau, il ne va probablement pas faire beaucoup de différence, si l'application de base de code est écrit par le même utilisateur.
Cela dit, le cadre est très architecturale, par sa nature, et donc peut-être pas le meilleur endroit pour commencer. Une simple bibliothèque de l'utilitaire de code est beaucoup mieux, et c'est exactement ce que l'OP est en train de faire (des questions de terminologie de côté). Bon pour lui.
À toujours sauter sur le cadre existant train en marche lorsque vient le temps de prendre au sérieux, j'ai profondément enracinée réserves à ce sujet. Tout d'abord, il n'y a pas de cadre, ou même un cadre qui est plus que marginalement bon pour tous les usages. La plupart de l'usage général, les cadres sont trop compliqués, les performances des paresseux par rapport à code à la main à l'écoute de son but. Ainsi, par une équipe expérimentée de travail sur les complexes, les applications du monde réel, un GP cadre sera souvent une mauvaise idée. C'est pourquoi, lorsqu'il s'agit de cadres, je préfère ceux qui, comme Zend, qui vous permettent de choisir les fonctionnalités dont vous avez besoin sans avoir à sauter avec les deux pieds.
De façon plus critique, dans le ~30 ans, j'ai été en développement de logiciel, j'ai vu de nombreux cadres, même ceux avec près de 100% de la saturation du marché et le soutien des principaux fournisseurs, tout simplement mourir. Lorsque cela se produit, les développeurs sont bloqués. Et non, étant open-source n'est pas de résoudre ce problème. Si cela prend beaucoup de personnes expérimentées ans, afin d'élaborer et maintenir à jour un grand cadre, comment une petite équipe à l'intérieur d'une entreprise, souvent avec seulement un ou deux vraiment des gens expérimentés--censé réaliste de maintenir le projet quand il tombe hors de la faveur, et commence à mourir? Ce qui se passe avec les petits projets de code, trop: témoin de la mort de l'état dans lequel de nombreuses fois populaire de POIRE les bibliothèques se retrouvent aujourd'hui.
OriginalL'auteur mr. w
Il peut être utile de regarder ce simple framework php par Tyler Hall pour quelques idées.
Bonne chance!
OriginalL'auteur Galwegian
Si vous souhaitez utiliser un cadre pour un usage personnel, vous devez utiliser l'un de l'établi, open source services, tels que les CakePHP, symfony, Zend ou CodeIgniter. Ces cadres ont été développées et testées depuis des années par de talentueux développeurs web et sera très probablement plus que de répondre à vos besoins. Le seul moment où vous devriez faire votre propre cadre de référence est pour des fins éducatives ou si les cadres actuels ne répondent pas à vos exigences. Pas besoin de réinventer la roue.
De wikipédia:
C'est exactement ce que ces cadres visent à faire et sont assez bien réussi à.
En utilisant ces derniers, vous aussi apprendre à apprécier leurs solutions ainsi que de comprendre comment ils utilisent la programmation orientée objet pour le développement web, augmenter votre connaissance en tant que développeur.
ajouté.
Une autre considération de valeur: Kohana: kohanaframework.org
problème avec Kohana est le manque de cohérence de la documentation. Si vous pouvez contourner cet obstacle, je dirais qu'il surpasse CI qu'il ne prévoit pas d'arrière-support de PHP4.
vrai, mais il y a beaucoup d'autres ressources, telles que le titre officieux de Kohana wiki: kerkness.ca/wiki/doku.php. CodeIgniter bat dans la simplicité et la documentation, mais j'ai l'impression Kohana est beaucoup plus riche en fonctionnalités, et j'aime le HMVC motif qu'il utilise.
OriginalL'auteur webbiedave
D'autres ont répondu à votre cadre en question (seulement construire quelque chose pour l'apprentissage de la valeur, sinon apprendre à utiliser l'une des meilleures matures existants cadre et des bibliothèques), mais je veux juste souligner un petit nit avec votre code, de l'ensemble de la point d'avoir un sigil $ avant la var est que vous pouvez facilement faire
au lieu de
peut-être que vous avez utilisé des guillemets simples au lieu de guillemets dans votre test?
OriginalL'auteur Pat
Ce sera peut-être trop sévère, mais: ne pas envisager de faire un propre cadre de référence, à moins que vous de bien comprendre la programmation orientée objet. La connaissance de la programmation orientée objet va évoluer à partir de votre programmation procédurale quand vous acquerrez de l'expérience.
Créer un fichier PHP qui contient les fonctions les plus couramment utilisées est une belle idée et je dirais d'aller pour elle. Mais ne l'appelez pas un cadre 🙂
Vous faites un bon point, mais gardez à l'esprit qu'il peut être difficile d'apprendre de vos erreurs. Vous pouvez écrire quelque chose qui compile et est-ce que vous souhaitez faire, mais cela ne signifie pas qu'il n'y a pas toutes les erreurs là
Oui, c'est ce que je voulais dire par "l'évolution de la programmation procédurale". Je n'ai pas dit "ne pas aller pour elle", je me suis dit "ne l'appelez pas un cadre".
OriginalL'auteur Karel Petranek
Admirable si vous ne savez même pas ce que les principes de base de la construction d'un cadre, en particulier les modèles, et ne sont pas mis à la terre dans la programmation orientée objet et confortable, écrit-il alors, comment espérez-vous atteindre votre objectif? Vous n'aurez pas forcément beaucoup apprendre par l'écriture de code vous-même, c'est à dire si vous écrivez un mauvais code 40 fois ce n'est pas vous enseigner une chose (ce n'est pas une critique personnelle de vous, par la voie), mais en lisant d'autres peuples code, qui sera à la fois le bon, le mauvais et indifférent, alors vous allez apprendre.
OriginalL'auteur PurplePilot
Généralement, un Cadre a un objectif spécifique. Un Cadre peut prendre en charge une CMS, un moteur 3D, un accès aux données du système, etc... vous pouvez souvent voir plusieurs cadres utilisés ensemble pour accomplir le but ultime, comme l'utilisation de Spring, Hibernate, et JavaEE pour construire une application web Java.
Dans le regard de cela, vous êtes la collecte de tous vos assortiment de ses fonctions préférées dans un seul fichier (ou faites-vous de les regrouper dans des dossiers différents de par leur fonctionnalité?). Cela peut être utile, mais je n'appellerais pas cela un cadre encore. C'est vraiment une bibliothèque. Si toutes les fonctions sont destinées à soutenir la fantaisie d'une fonctionnalité de messagerie, puis apprendre la programmation orientée objet, et de construire un cadre dont l'unique objectif est de fournir un outil facile à utiliser l'interface pour la fantaisie d'une fonctionnalité de messagerie.
OriginalL'auteur FrustratedWithFormsDesigner
Je voudrais également parier sur un autre cadre. Il y a de plus simples, avec de grandes collectivités. Vous pourriez vous aider de trois façons: avec de nombreux modules contribués/bonne structure, lire à haute qualité de code et d'obtenir le soutien d'une large communauté.
Ici il y a une liste avec de nombreux modèles de cadres et de comparaison - phpframeworks.com. Je pourrais vous recommandons également de CodeIgniter - bon pour les débutants, assez simple et MVC basé en même temps.
OriginalL'auteur Mario Peshev
Ce n'est pas la réponse à votre cadre de question, mais si vous l'utilisez:
et:
Les gens vont essayer d'injecter de nouvelles têtes d'e-mail dans votre $de domaine en publiant
à votre $de champ.
Pour ne pas mentionner le problème des personnes qui l'utilisent à des fins de spam, si vous le permettez un $_POST['to'].
OriginalL'auteur SomeGuy