web-dev-qa-db-ja.com

どのオープンソースPHPプロジェクトに「完璧」なものがあるかOOP私が学ぶことができるデザインは?

私はOOPの初心者で、例を挙げて学ぶのが一番です。

この質問は (Scala私が勉強してベストコーディングプラクティスを学ぶために勉強する必要がある場合 -に似ていますが、PHPであると言えます。

私はSymfonyが最高の「アーキテクチャ」を持っていると聞きました(私はそれが正確に何を意味するかを知っているふりはしません)、およびDoctrine ORM。何ヶ月も読むのは価値がありますか?これらのプロジェクトのソースコード、使用されているパターンを推測して新しいトリックを学習しようとしていますか?

Zendのコードベースを同化して好むWebページの数は同じです(必要と思われる場合はリンクを提供します)。

ベテランOOP開発者が喜びの涙を流すような他のプロジェクトを知っていますか?

ここでは、実用性と使用範囲はまったく問題ではないことを付け加えておきます。ただやりたいだけです。

  • 私よりも開発者によって優れていると思われるコードベースを持つプロジェクトを選択してください。
  • プロジェクトの機能を実現するコードを記述します。
  • 結果を比較し、わからないことを学ぶようにしてください。

基本的に、学術的関心のコードベース。何かおすすめはありますか?

9
Aditya M P

Symfony 2はおそらく学ぶのに最適な大規模プロジェクトですが、かなり大きなプロジェクトです。

私は最近、きちんとした小さなオープンソースを見つけましたPHPと呼ばれるプロジェクト Phrozn (静的サイトジェネレーター)。コードベースは比較的小さいので、かなり速く調べることができます。

更新:

Phroznはモダンです(PHP 5.3+を使用し、それに大きく依存しています)、拡張可能で、厳密なコードカバレッジを持っています。また、Symfony(YAML)などの他のよく書かれたプロジェクトからのコードを再利用します。 Zend(オートローダー)、PEARおよびTwig。

OOP、名前空間を使用しており、十分に文書化されています。 Symfonyのようなプロジェクトと比較しても完璧だとは言いませんが、一見の価値はあります。

2
Christian P

個人的には、チェックアウト Symfony2 と言います。これは、私が今まで見た中でエンドツーエンドの大規模なプロジェクトのほとんどです。それは悪いところがないと言っているわけではありませんが、全体としてはかなり良いです。

現在、 Zend が真ん中にあります。公開APIを見ると、かなり良いです。これにはいくつかのWTFパーツがありますが、ほとんどの場合それで問題ありません。さらに掘り下げていくと、さらに多くのWTFコードが見つかります...

あからさまに避けるべき限り:

  • CodeIgniter-Fubar MVCモデル
  • コハナ-多くの静力学
  • ケーキ-PHP 4オブジェクトセマンティクス
  • Drupal-OOPまったくではない
  • ワードプレス-まったくOOPまったく

残りの部分については、それはヒットとミスです。すべてのデザインには良い部分と悪い部分があります。 Lithium を見てください。これは、いくつかの本当にクールなデザインコンセプトを持っています。しかし、それを機能させるために、たくさんのリダイレクトとハッカーが含まれています。

そして、それは銀行に持っていくものです。完璧なデザインはありません。見つけようとしないでください。代わりに、それらをたくさん見て、自分で決めてください。それぞれを試して、それらを壊してみてください。それらを読むだけでそれらを理解するようにしてください(これはまともな設計の良いテストです)...

ただ私の個人的な意見...

17
ircmaxell