Je suis un débutant à la POO et j'apprends mieux par l'exemple.
Vous pourriez dire que cette question est similaire à Quels projets open source Scala devrais-je étudier pour apprendre les meilleures pratiques de codage - mais en PHP.
J'ai entendu dire que Symfony a la meilleure «architecture» (je ne prétendrai pas savoir ce que cela signifie exactement), ainsi que Doctrine ORM. Vaut-il la peine de passer plusieurs mois à lire le code source de ces projets, à essayer de déduire les modèles utilisés et à apprendre de nouvelles astuces?
J'ai vu un nombre égal de pages Web dissester et aimer la base de code de Zend (fournira des liens si cela est jugé nécessaire).
Connaissez-vous un autre projet qui ferait couler de joie tout développeur vétéran de la POO?
Permettez-moi d'ajouter que l'aspect pratique et la portée de l'utilisation ne sont pas du tout une préoccupation ici - je veux juste faire:
- Choisissez un projet qui a une base de code jugée géniale par les développeurs bien meilleure et plus grande que moi.
- Écrivez du code qui réalise ce que fait le projet.
- Comparez les résultats et essayez d'apprendre ce que je ne sais pas.
Fondamentalement, une base de code d'intérêt académique. Des recommandations s'il vous plaît?
la source
Réponses:
Symfony 2 est probablement le meilleur grand projet à apprendre, mais il est assez gros.
J'ai récemment trouvé un petit projet PHP open source soigné appelé Phrozn (générateur de site statique). Sa base de code est relativement petite, vous pouvez donc l'examiner assez rapidement.
MISE À JOUR:
Phrozn est moderne (utilise PHP 5.3+ et en dépend fortement), il est extensible, a une couverture de code stricte. Il réutilise également le code d'autres projets bien écrits tels que Symfony (YAML), Zend (Autoloader), PEAR et Twig.
OOP, utilise des espaces de noms et c'est très bien documenté. Je ne dis pas que c'est parfait ni qu'il peut être comparé à un projet comme Symfony mais ça vaut le coup.
la source
Eh bien, personnellement, je dirais consultez Symfony2 . C'est à peu près le meilleur grand projet de bout en bout que j'aie jamais vu. Cela ne veut pas dire qu'il n'y a pas de mauvaises parties, mais dans l'ensemble, c'est plutôt bien.
Maintenant, Zend est au milieu. Si vous regardez l'API publique, c'est plutôt bien. Il y a quelques parties WTF, mais pour la plupart, ça va. Si vous commencez à creuser davantage, vous trouverez BEAUCOUP plus de code WTF ...
En ce qui concerne ce qu'il faut éviter carrément:
En ce qui concerne le reste, vous constaterez que c'est aléatoire. Il y a de bonnes et de mauvaises pièces dans tous les modèles. Jetez un œil au Lithium , il a des concepts de design vraiment cool. Mais il a également beaucoup de redirection fubar et de piratage pour que cela fonctionne.
Et c'est ce qu'il faut apporter à la banque. Il n'y a pas de design parfait, n'essayez pas d'en trouver un. Au lieu de cela, regardez-en beaucoup et décidez par vous-même. Essayez chacun, essayez de les casser. Essayez de les comprendre simplement en les lisant (ce qui est un bon test de conception saine) ...
Juste mon opinion personnelle ...
la source