ホームページ >バックエンド開発 >PHPチュートリアル >これから進歩しようとしている PHPer がオープンソース プロジェクトのソース コードを読み通したい場合、どちらを勉強すればよいでしょうか?

これから進歩しようとしている PHPer がオープンソース プロジェクトのソース コードを読み通したい場合、どちらを勉強すればよいでしょうか?

WBOY
WBOYオリジナル
2016-10-17 09:13:031153ブラウズ

返信内容:

実際、PHP ソース コードを読むことが最も役立ちます。前提条件は、オペレーティング システムと C 言語の基本的な知識があることですphp-internals.com/ 誰にとっても適したプロジェクトはありません。興味のあるコードを読むのが最善です。今月は GitHub にトレンドの PHP リポジトリがたくさんあります。 phpはかなり優れていると思います 私たちのチームが開発したフレームワークに基づいて開発された作品を読むことをお勧めします。
フレームワーク: zentaophp
製品: zentao、ranzhi、chanzhi
私たちは市場の多くのフレームワークに対して異なる見解を持っているため、独自のフレームワークを開発し、このフレームワークに基づいて多数のオープンソース製品を実装しました。それぞれに数十の機能モジュールがあります、多言語サポート、詳細な拡張メカニズム、API 呼び出しメカニズムなど。 PHP を学ぶためにフレームワーク コードを読んでいる場合は、Symfony2、Lavavel、Yii2 などのよりよく知られているフレームワークに目を通すことをお勧めしますが、実際には、各フレームワークのソース コードを理解するのはそれほど簡単ではありません。デザインパターンと新しい言語機能に関する知識を追加する必要があります。大切なのは言語技術ではなく、内面にある考え方を学ぶことです。 あなたがタグ付けしたいくつかのオープンソースフレームワークに基づいて、私の個人的な意見は次のとおりです:

1. WP: このブログシステムをあまり深く掘り下げることはお勧めしません。企業の Web サイトですが、ソース コードで使用されているデザイン パターンは非常に特殊です。奇妙なトリックを学びたい場合は、これを参照してください。 !: これには研究価値があり、もちろん、Discuz ファミリーの他のいくつかのオープンソース システムも含まれており、そのマルチシステム統合アーキテクチャの一部を学ぶことで、多くの新しいアイデアを得ることができます。特に Yii2 については、ディレクトリ構造と OOP 設計パターンの両方を学ぶ価値があるため、注意深く学習することをお勧めします。欠点は、国内の情報が少なく、時間がかかることです。
4. Symfony はあまり利用されておらず、客観的な意見を与えることができません。 最良の研究は、コードを書いてプロジェクトに取り組むことです
プロジェクトの経験が十分でなければ、良いことと悪いことの区別がつきません。
私のオープンソースプロジェクトに参加できます
https://git .oschina.net/yiany/yiany

個人的には 2 つの方向性があると考えています
1 つ目: Web アーキテクチャ カテゴリ全体
  • 2 つ目: ビジネス ロジック カテゴリ
  • まず、Web アーキテクチャ カテゴリ全体について話しましょう。 Yii、Symfony、ZendFramework をお勧めします。このタイプの Web 開発フレームワークは、完全な構造、厳密なカプセル化、および完全な機能を備えています。これらのフレームワークを学習すると、Web のさまざまな概念を経験することになります。
たとえば、Yii を学習している場合、Yii はリクエストとレスポンスのオブジェクトにそれぞれ Cookie のカプセル化を配置することがわかります。これにより、リクエスト時とブラウザに設定する際にブラウザから Cookie を取得する必要があることがわかります。応答。
さらに、Web上のコンセプトに加えて、優れたフレームワークから優れたデザインソリューション、デザインコンセプト、実装戦略などを学ぶこともできます。
別の例として、Yii では、コントローラーのアクション コードを再利用する必要がある場合、ビヘイビアーを使用してコードを拡張し、共通の操作がコントローラーに挿入されるようにすることができます。現時点では、構造の機能的再利用を解除する必要がある場合は、それを実現するためにインジェクション クラス テクノロジを使用することを選択できます。次に、このクラス インジェクション ソリューションはどのように実装されるのかを考えます。コードを辿ってみると、オブジェクト指向のTraits機構が使われていることが分かります。これにより、学習範囲が拡大します。
(追記: Yii を例として使用する理由は、Yii に関するいくつかの記事が最近公開されているためであり、それ以外の何ものではありません)


ビジネス ロジック クラスについて話しましょう
いわゆるビジネス ロジック クラスは、市場で次のことができるクラスです。 ecshop、phpCMS などの特定の機能製品を実装します。このタイプの製品の特徴は、典型的なビジネス ロジックが実装されており、その実装が非常に優れていることです。このように、コードを学ぶと、典型的なビジネス ロジックの特定の側面も理解でき、何を理解できるかがわかります。時間がある、何をするか。
たとえば、Ecshop を学習している場合は、典型的なモールが持つべきビジネス ロジックを理解できるようになり、同様の機能に遭遇したときに、半分の労力で 2 倍の結果が得られます。
(追伸:そのような製品はたくさんあります、国内だけでなく世界を見ることができますが、後で国産製品を使用する可能性が資本になります)

上記の製品のいずれかを必ず選択してください。勉強してください。選択に多くの時間を費やさないでください。時間が経つにつれて、熱意が薄れ、まだ正式に読み始めていないことに気づき、選択を終えたばかりです。それは残念です。

最後に、他のことについて話す前に、マニュアルを 2 回読むことを強くお勧めします。 ララベルバー symfony は Java で一般的に使用されるデザインパターンを多く使用していますが、学習に使用する場合は、symfony の方が私には適していると思います。ただし、記述方法は比較的古く、複雑すぎるものが多いです。

Laravel は symfony から分離されており、その書き方と技術は比較的新しいものです。

PHP+C は実用的なアプリケーションのトレンドであり、パフォーマンスと開発効率の両方を考慮する必要があります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。