Question Pourquoi utiliser un framework web (comme les rails) sur php?


Ce n'est pas une question sur le framework à utiliser. J'ai appris à la fois Rails et Django, et j'écris toutes mes applications web en PHP. Ma question est pourquoi s'embêter avec les cadres? Il m'a toujours fallu plus de temps pour utiliser un framework que pour réutiliser un ancien code MySQL et construire des "modèles" avec phpMyAdmin. J'aime aussi tout écrire moi-même, car je sais ce qui se passe. Je peux toujours réutiliser des fonctions, etc. et faire les choses comme je le souhaite, et cette liberté semble manquer dans la plupart des frameworks.

Je ne dis pas que ma voie est bonne; En fait, j'essaie de comprendre où ma logique échoue. Le battage médiatique ne peut pas être juste de l'air. Qu'est-ce que je rate?


9
2018-05-16 20:15


origine


Réponses:


L'idée de base d'un framework est de vous permettre de travailler à un niveau d'abstraction supérieur et d'écrire uniquement le code que vous devez écrire pour mettre en œuvre vos besoins spécifiques. Toutes les autres tâches répétitives sont gérées pour vous par le framework, et probablement avec beaucoup moins de bugs et de failles de sécurité que si vous le faisiez vous-même.

Cela pourrait ressentir Il faut plus de temps pour apprendre un framework que de le faire vous-même en utilisant les fonctionnalités de base et les API standard, mais ce n'est tout simplement pas vrai - pas si le framework est bon et que l'application n'est pas triviale et surtout le framework (en utilisant un autre pour chaque nouveau projet serait bien sûr idiot) et prendrait en compte le temps qu'il faudrait pour trouver et éliminer tous les bugs et corriger toutes les erreurs de conception trouvées, éliminées et corrigées depuis longtemps dans le framework par sa communauté de développeurs.

Presque tous les développeurs ont des instincts de codeur de cow-boy qui lui disent: "Faire les choses vous-même est beaucoup plus amusant que d'utiliser le code que d'autres ont écrit, et je suis sûr que je vais le faire du premier coup. meilleur!". Ces instincts sont presque toujours faux.


28
2018-05-16 22:59



Frameworks vous permet de vous concentrer sur l'application elle-même plutôt que de vous soucier du code standard que vous auriez dû écrire pour chaque application. Ils vous permettent de structurer votre site de manière beaucoup plus logique (principalement orientée objet), en utilisant des critères de conception éprouvés tels que model-view-controller. Le code dans le framework est généralement plus mature et plus standard que le code que vous écrivez vous-même pour les projets ponctuels, car les frameworks ont une grande communauté de développeurs qui perfectionnent le code en perfectionnant le code au fil des ans. Cela signifie que les sites pilotés par le framework fonctionnent souvent mieux et sont beaucoup plus sécurisés.

Vous avez également mentionné que vous aimez écrire vous-même - je sais d'où vous venez. Ma solution était d'écrire mon propre framework - je peux réutiliser et améliorer mon code avec tous les projets que je fais et je connais le code entier à l'intérieur.


21
2018-05-16 20:22



En l'écrivant vous-même, il vous sera peut-être plus facile de comprendre les choses vous-même, mais, malheureusement, il peut être beaucoup plus difficile pour les autres développeurs de comprendre ce qui se passe. Les cadres seront souvent mieux documentés et une communauté plus large pourra prendre en charge un nouveau développeur qui travaille sur l'application que vous avez écrite.


7
2018-05-16 21:18



Je pense qu'une grande partie est ce sur quoi vous vous concentrez. Les frameworks normalisent les parties que vous ne devriez pas avoir à continuer à consulter, ce qui vous aide à vous concentrer sur l'application dans son ensemble. Si vous réutilisez votre propre code tout le temps, vous utilisez déjà votre propre environnement de fortune.


4
2018-05-16 20:22



Vous comparez un framework (Rails) à un langage (PHP). Un framework va vous donner des composants pré-construits pour que vous puissiez consacrer du temps à ce qui rend votre projet unique.

Vous avez peut-être déjà une base de code qui vous aide à le faire. Découvrez certains des frameworks PHP car c'est là que vous êtes le plus à l'aise. Jeter un coup d'œil à CakePHP, CodeIgnitor et / ou Zend Framework.

Si vous créez de nombreuses petites applications / sites, l'utilisation d'un framework peut vous simplifier la vie.


3
2018-05-16 21:07



Je pense qu'un bon pas pour vous est de créer votre propre framework avec le code que vous avez programmé jusqu'à présent. ;) 

Essayez de rendre votre code paramétrable, en d’autres termes: créez des composants que vous pouvez réutiliser dans différentes parties d’un site Web (par exemple: des conteneurs stylisés) ou sur différents sites Web (générateurs de formulaires / validateurs).

Vous pouvez même aller plus loin et créer des classes de base à partir desquelles vous étendez de nouvelles classes pour créer vos sites Web. (par exemple: objets de données avec méthodes génériques select / insert / update / delete).

Je parie que cela vous donne la meilleure vue sur les raisons pour lesquelles les frameworks sont si pratiques;)


2
2018-05-16 21:05



Il vous faudra plus de temps pour utiliser initialement un framework pour les mêmes raisons qu'un développeur PHP mettrait plus de temps à utiliser Ruby - vous ne le connaissez pas.

Une fois que vous les connaissez, les frameworks peuvent vous permettre de passer outre les tâches banales et vous concentrer sur l’écriture des parties importantes de l’application.


1
2018-05-16 21:25



Vous devez également utiliser un cadre basé sur PHP tel que Symfony ou CakePHP qui les utilise pour réduire considérablement votre temps de production.

L'une des raisons d'utiliser un cadre est la séparation des codes. Prenez symfony par exemple. Le modèle est tout fait avec des bibliothèques de propulsion ou de doctrine. Très peu de SQL nécessaire Vous instanciez un nouvel objet et des utilisateurs et des régleurs, pour stocker vos données, et au lieu d'écrire du code SQL dans votre code de page, vous créez des fonctions dans les objets liés à la requête. Lorsque vous avez besoin d'accéder au même type de données sur différentes pages, vous en demandez le modèle, en conservant la logique métier avec le modèle où il devrait être, pour qu'il n'y ait jamais de différence. Tout le travail est fait dans la "fonction du contrôleur d'action". Vous obtenez toutes les données dont vous avez besoin, puis mettez le moins de php à l'écran, en faisant simplement écho aux variables que vous avez obtenues dans le contrôleur d'action (à l'exception de certaines pour les boucles et les instructions if pour les conditionnelles). moyen efficace de coder, et sur mon deuxième projet a vu le temps de production réduit de moitié.

Vous n'avez pas besoin d'apprendre un nouveau langage python / ruby ​​juste pour utiliser un excellent framework, il vous suffit juste d'en choisir un qui fonctionne pour vous.


1
2018-05-17 02:08



Tout d'abord, PHP a aussi des frameworks, donc la question telle qu'énoncée manque le point.

Oui, vous pouvez écrire votre propre cadre, et comme Kris l'a dit, il n'y a pas de honte à cela. Cependant, une partie de l’effet de la réutilisation du code est la valeur collective des efforts de beaucoup. Il ne s'agit pas seulement de réutiliser votre propre code. Les frameworks encapsulent les tâches et modèles communs que nous partageons tous et fournissent des solutions bien testées avec de nombreuses itérations d’améliorations de la part de la communauté. Aucun effort individuel ne sera à la hauteur, peu importe qui vous êtes.

Si vous lancez le vôtre, il ne deviendra de classe mondiale que grâce à l'effort collectif des personnes de classe mondiale, et cela ne se produira que si votre idée mérite l'attention. Les meilleurs cadres sont déjà éprouvés sur ces critères.

DHH est un gars intelligent, mais les Rails que nous avons aujourd'hui n'auraient jamais pu être réalisés par lui seul. Pas même proche.

Si vous aimez «écrire tout vous-même» comme vous le dites, choisissez un cadre avec une philosophie de base qui vous correspond, et commencez à apporter des contributions de base dans les domaines où vous pouvez voir des améliorations.


1
2018-05-17 06:12



Selon les fonctions de votre application Web, il peut être plus rapide de se développer sans infrastructure. Par exemple, lorsque Webapp est juste une sorte de visualiseur de données.

Mais dès que vous commencez à implémenter des fonctions plus avancées, vous êtes beaucoup plus efficace avec un framework.

Essayez de le faire à partir de zéro: - validation correcte du formulaire - Gestion de plusieurs formats de langue et de date / heure - Authentification

Voir un cadre comme des outils gratuits et une fonction implémentée stable pour vous.


1
2018-05-17 06:35