Sou novato no OOP e aprendo melhor por exemplo.
Você poderia dizer que esta pergunta é semelhante a Quais projetos de código aberto Scala devo estudar para aprender as melhores práticas de codificação - mas em PHP.
Ouvi dizer que o Symfony tem a melhor 'arquitetura' (não vou fingir que sei o que isso significa exatamente), assim como o Doctrine ORM. Vale a pena gastar muitos meses lendo o código fonte desses projetos, tentando deduzir os padrões usados e aprendendo novos truques?
Eu já vi um número igual de páginas dissing e gostando da base de código do Zend (fornecerá links se necessário).
Você conhece algum outro projeto que faria qualquer desenvolvedor veterano de OOP derramar lágrimas de alegria?
Deixe-me acrescentar que a praticidade e o escopo de uso não são uma preocupação aqui - só quero fazer:
- Escolha um projeto que tenha uma base de código considerada incrível pelos desenvolvedores muito melhor e maior que eu.
- Escreva um código que atinja o que o projeto faz.
- Compare os resultados e tente aprender o que não sei.
Basicamente, uma base de código de interesse acadêmico. Alguma recomendação, por favor?
fonte
Respostas:
O Symfony 2 é provavelmente o melhor projeto grande para aprender, mas é bem grande.
Recentemente, eu encontrei um projeto PHP simples e de código aberto chamado Phrozn (gerador de site estático). Sua base de código é relativamente pequena, para que você possa examiná-la rapidamente.
ATUALIZAR:
O Phrozn é moderno (usa PHP 5.3+ e depende muito dele), é extensível, possui uma cobertura de código rigorosa. Também reutiliza o código de outros projetos bem escritos, como Symfony (YAML), Zend (Autoloader), PEAR e Twig.
OOP, usa namespaces e está muito bem documentado. Não estou dizendo que seja perfeito nem que possa ser comparado a um projeto como o Symfony, mas vale a pena tentar.
fonte
Bem, pessoalmente, eu diria que verifique o Symfony2 . É praticamente o melhor projeto de ponta a ponta que já vi. Isso não quer dizer que não haja partes ruins, mas como um todo, é muito bom.
Agora, Zend está no meio. Se você olhar para a API pública, é muito bom. Existem algumas partes do WTF, mas na maioria das vezes está tudo bem. Se você começar a pesquisar mais, encontrará muito mais código WTF ...
Na medida em que evitar completamente:
Quanto ao resto, você verá que é um sucesso e um fracasso. Existem peças boas e ruins para todos os projetos. Dê uma olhada no Lithium , ele tem alguns conceitos muito legais de design. Mas também possui muitos redirecionamentos de fubar e hackers para que isso funcione.
E é isso que levar ao banco. Não existe um design perfeito, não tente encontrar um. Em vez disso, olhe para muitos deles por aí e decida por si mesmo. Tente cada um, tente quebrá-los. Tente entendê-los apenas lendo-os (o que é um bom teste para o design são) ...
Apenas minha opinião pessoal ...
fonte