Soy un novato en OOP, y aprendo mejor con el ejemplo.
Se podría decir que esta pregunta es similar a los proyectos de código abierto de Scala que debería estudiar para aprender las mejores prácticas de codificación , pero en PHP.
He oído decir que Symfony tiene la mejor 'arquitectura' (no voy a fingir que sé exactamente lo que eso significa), así como Doctrine ORM. ¿Vale la pena pasar muchos meses leyendo el código fuente de estos proyectos, tratando de deducir los patrones utilizados y aprendiendo nuevos trucos?
He visto la misma cantidad de páginas web deshabilitando y gustando la base de código de Zend (proporcionará enlaces si se considera necesario).
¿Conoces algún otro proyecto que haría que cualquier desarrollador veterano de OOP derramara lágrimas de alegría?
Permítanme agregar que la practicidad y el alcance de uso no son una preocupación en absoluto aquí, solo quiero hacer:
- Elija un proyecto que tenga una base de código considerada impresionante por los desarrolladores mucho mejor y mayor que yo.
- Escriba código que logre lo que hace el proyecto.
- Compare los resultados e intente aprender lo que no sé.
Básicamente, una base de código de interés académico. ¿Alguna recomendación por favor?
fuente
Respuestas:
Symfony 2 es probablemente el mejor proyecto grande para aprender, pero es bastante grande.
Recientemente encontré un proyecto PHP limpio y pequeño de código abierto llamado Phrozn (generador de sitio estático). Su código base es relativamente pequeño, por lo que puede examinarlo bastante rápido.
ACTUALIZAR:
Phrozn es moderno (usa PHP 5.3+ y depende mucho de él), es extensible, tiene una cobertura de código estricta. También reutiliza el código de otros proyectos bien escritos como Symfony (YAML), Zend (Autoloader), PEAR y Twig.
OOP, usa espacios de nombres y está muy bien documentado. No digo que sea perfecto ni que se pueda comparar con un proyecto como Symfony, pero vale la pena intentarlo.
fuente
Bueno, personalmente diría que echa un vistazo a Symfony2 . Es prácticamente el mejor proyecto grande de extremo a extremo que he visto hasta ahora. Eso no quiere decir que no tenga partes malas, pero en general es bastante bueno.
Ahora, Zend está en el medio. Si miras la API pública, es bastante buena. Hay algunas partes de WTF, pero en su mayor parte está bien. Si comienzas a profundizar más en él, encontrarás MUCHO más código WTF ...
En cuanto a qué evitar directamente:
En cuanto al resto, encontrarás que es impredecible. Hay partes buenas y malas en todos los diseños. Eche un vistazo a Lithium , tiene algunos conceptos de diseño realmente geniales. Pero también tiene mucha redirección de fubar y piratería para que eso funcione.
Y eso es lo que llevar al banco. No hay un diseño perfecto, no intentes encontrar uno. En cambio, mira muchos de ellos y decide por ti mismo. Pruebe cada uno, intente romperlos. Trate de entenderlos con solo leerlos (lo cual es una buena prueba de diseño sensato) ...
Solo mi opinión personal ...
fuente