Je suis nouveau dans la programmation Web et en ce moment j'apprends PHP. Je voudrais savoir quand dois-je utiliser un framework PHP tel que CakePHP? Quelles sont les choses que cela et d'autres frameworks PHP similaires m'offrent? Et est-il vraiment important d'utiliser un cadre pour être un professionnel?
- Et puis-je créer mon propre framework pour y fournir les fonctionnalités que j'aime?
php
frameworks
Goma
la source
la source
Réponses:
Lorsque vous êtes à l'aise avec PHP, vous pouvez commencer à utiliser un framework. Et vous devez toujours les utiliser:
Vous pouvez créer votre propre framework, mais je ne le recommanderais certainement pas. C'est compliqué, il y a déjà beaucoup de bons frameworks, et il est peu probable que vous trouviez une fonctionnalité manquante. De plus, ils fournissent souvent des moyens de leur ajouter vos propres fonctionnalités, sans avoir à en créer de toutes nouvelles.
la source
Construisez quelques pages sans framework ... vous commencerez essentiellement à écrire votre propre framework par essais et erreurs. Après cela, passez à un cadre et profitez du temps que vous économisez. Essayer de créer votre propre framework peut vous apprendre certaines choses et vous aidera à apprécier les frameworks qui existent déjà.
Quand j'ai commencé à utiliser PHP, je pensais que les frameworks étaient une perte de temps compliquée. Maintenant, j'utilise CodeIgniter pour des projets même simples. Il faut environ 1 minute pour être opérationnel et vous disposez déjà d'une tonne de superbes bibliothèques. Et, comme l'a mentionné une affiche précédente, la plupart des frameworks sont extensibles, vous pouvez donc toujours ajouter les fonctionnalités que vous souhaitez.
la source
Comme l'a dit Niphra , ne commencez à utiliser un framework que lorsque vous pouvez utiliser PHP sans framework (c'est-à-dire, accéder à la base de données, envoyer des en-têtes et du contenu, traitement de chaînes, manipulation de données, etc.). En ce qui concerne vos questions:
Quand dois-je utiliser un framework PHP tel que CakePHP? Lorsque votre projet se développe au-delà de quelques fichiers PHP; le moment où vous commencez à séparer fortement la logique en éléments distincts et la fonctionnalité de modularisation / partage (sessions, etc.), c'est quand vous devez utiliser un cadre.
Quelles sont les choses que cela et d'autres frameworks PHP similaires m'offrent? Abstraction; au lieu d'interagir directement avec la base de données, vous pouvez utiliser un mappage relationnel-objet (ORM) pour gérer la structure et les relations entre vos données dans la base de données. La plupart des frameworks dans de nombreuses langues fournissent des ORM pour faciliter l'interaction avec la couche de base de données de votre application. De même, les cadres séparent souvent les couches de réponse à l'interaction de l'utilisateur. La séparation la plus courante est le paradigme MVC (Model View Controller), qui, pour être bref, résume la logique de la base de données dans le modèle (une interface avec l'ORM, dans de nombreux cas), traite les demandes et interagit avec les modèles dans le contrôleur, et le rendu du HTML / PDF / image / etc. dans la vue. Les cadres fournissent souvent d'autres outils tels que le routage (pour permettre un traitement complexe de l'URI de la demande (EG: mappage de la demande "http://example.com/users/1 "aux utilisateurs du contrôleur, qui recherche ensuite le modèle utilisateur avec l'ID de 1) et une abstraction des sessions et d'autres structures de base.
Et est-il vraiment important d'utiliser un cadre pour être un professionnel? Pas nécessairement; les cadres facilitent la vie; mais vous n'avez pas besoin d'en utiliser un pour être un professionnel. Les cadres fournissent une abstraction et une standardisation pratiques, mais ils ne sont pas obligatoires dans la plupart des cas.
la source
Après avoir lu certaines des réponses, je voudrais d'abord dire que vous n'avez souvent pas beaucoup d'option sur le cadre que vous allez utiliser ou si vous allez en utiliser un ou non (en tant que professionnel). Je ne veux pas vous intimider, mais vous devrez acquérir une compréhension suffisante de PHP pour permettre de passer d'un framework à un autre en utilisant plus d'un framework à la fois.
Il n'y a pas de réponse universelle à cela. En tant que professionnel, vous allez être chargé de résoudre des problèmes spécifiques et ce sera le facteur décisif pour quand et quoi de chaque projet, surtout si un client a une demande spécifique. Mais d'une manière générale, vous utiliserez toujours une certaine forme de framework avec PHP, à moins que vous ne modifiiez ou étendiez une application préexistante qui a son propre framework (comme Wordpress ou PHPBB).
Comme l'a dit dirk, ils proposent l'abstraction. Cela signifie qu'ils suivent des procédures communes en plusieurs étapes et essaient de les rendre aussi simples et rationalisées que possible. En bref, ils essaient de présenter des solutions d'ajout d'eau pour les tâches courantes.
De manière générale, non, il n'est pas important d' utiliser un cadre pour être professionnel. Mais en réalité, vous n'aurez pas beaucoup de carrière si vous n'êtes pas familier avec au moins quelques cadres communs. PHP sans framework est comme C ++ sans bibliothèque std. Vous n'en avez pas besoin, et vous pouvez réellement en faire plus car vous utiliserez directement la fonctionnalité de bloc de construction de niveau inférieur du langage, mais cela vous prendra beaucoup plus de temps pour faire la même chose.
Oui. En fait, vous finirez probablement par le faire, même si ce n'est pas intentionnel. Par cela, je ne veux pas dire un cadre expansif de tout faire, mais plus comme une boîte à outils de fonctions de base et de scripts qui effectuent des tâches ne sont pas assez communs ou génériques pour être gérés par le cadre moyen. Le mien est essentiellement composé de divers systèmes de fichiers, de la gestion des processus et des bits tid rex-ex avec quelques utilitaires curl et stream / socket différents.
la source
Commun d'une personne qui a passé des années à pirater mes propres façons de parler à une base de données et de parler aux API en ligne et qui commence à peine à utiliser des frameworks, utilisez-les lorsque vous avez au moins une compréhension de ce qu'ils font, si possible.
Ne sautez pas immédiatement pour RedBean lors de votre première utilisation d'une base de données, travaillez d'abord avec la base de données manuellement. De cette façon, vous avez une compréhension approfondie de ce que vous récupérez et faites réellement dans la base de données, ce qui peut vraiment aider à l'évolutivité. Vous pouvez également créer votre propre solution lorsque le framework que vous utilisez ne fait pas ce que vous devez faire.
Une fois que vous comprenez ce qui se passe, utilisez un cadre! Cela rend les choses beaucoup plus faciles. Le crazyness avec le stockage d' une requête , puis en boucle sur les résultats avec
mysql_fetch_assoc
est tout disparu, réduit à un seul appel:$book = R::load( "book", $id )
. Vous serez beaucoup plus productif et pourrez corriger de futurs bugs ou ajouter de futures fonctionnalités beaucoup plus facilement.la source
Utilisez un framework lorsque vous connaissez suffisamment les technologies sous-jacentes pour savoir ce que le framework fait pour vous et pourquoi c'est bon (ou mauvais).
Un framework est en quelque sorte un méta-outil, qui vous permet de travailler avec vos outils (langue, base de données) un peu plus rapidement sans avoir à vous soucier de certains détails de ce que vous faites, ce qui est bien si vous connaissez vraiment votre outils.
Ce que vous NE VOULEZ PAS faire, c'est que vous apprenez le cadre au lieu des outils, que vous deveniez canalisé dans une certaine manière de faire les choses et que vous finissiez par ne pas vraiment maîtriser les langages et les concepts sous-jacents - ce devrait être un outil, pas une béquille.
la source
Lorsque vous vous retrouvez à faire la même chose encore et encore, regardez autour de vous et voyez s'il existe un cadre qui fait les mêmes choses redondantes que vous auriez fini par faire vous-même. N'utilisez pas seulement un cadre en raison du battage médiatique. Personnellement, j'aime CodeIgniter et le "framework PHP MVC sans framework" de Rasmus Lerdorf http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
la source
Je recommanderais de bien réfléchir à la raison pour laquelle vous utiliseriez le cadre x, y ou z. Chaque framework ne fournit pas seulement des fonctionnalités, que vous n'avez pas à implémenter vous-même, mais aussi une manière de penser. Il suffit de regarder Spring, JEE, Rails ou Django. Quatre cadres fournissant suffisamment pour écraser une application Web en peu de temps.
Mais tous les quatre promeuvent leur propre façon de penser sur la façon dont les applications Web doivent être construites. Et si cela ne correspond pas à vos besoins ou ne correspond pas à votre saveur, vous aurez du mal à aller plus loin.
Cela a été une comparaison très radicale mais peut-être que la construction d'une petite bibliothèque correspond mieux à vos besoins. Mais connaître les frameworks vous aidera certainement à travailler dans de plus grandes équipes ou à trouver de nouveaux emplois, car cela montre que vous vous intéressez au développement logiciel dans son ensemble.
la source
Les cadres sont toujours bons à utiliser dès le départ. Il favorise la réutilisation du code, une meilleure lisibilité et économise un peu de temps de développement.
Je ne suis pas très expérimenté avec PHP, mais j'encouragerais toute utilisation du framework.
la source