これから進歩しようとしている PHPer がオープンソース プロジェクトのソース コードを読み通したい場合、どちらを勉強すればよいでしょうか?
返信内容:
実際、PHP ソース コードを読むことが最も役立ちます。前提条件は、オペレーティング システムと C 言語の基本的な知識があることですhttp://www.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 のさまざまな概念を経験することになります。
さらに、Web上のコンセプトに加えて、優れたフレームワークから優れたデザインソリューション、デザインコンセプト、実装戦略などを学ぶこともできます。
別の例として、Yii では、コントローラーのアクション コードを再利用する必要がある場合、ビヘイビアーを使用してコードを拡張し、共通の操作がコントローラーに挿入されるようにすることができます。現時点では、構造の機能的再利用を解除する必要がある場合は、それを実現するためにインジェクション クラス テクノロジを使用することを選択できます。次に、このクラス インジェクション ソリューションはどのように実装されるのかを考えます。コードを辿ってみると、オブジェクト指向のTraits機構が使われていることが分かります。これにより、学習範囲が拡大します。
(追記: Yii を例として使用する理由は、Yii に関するいくつかの記事が最近公開されているためであり、それ以外の何ものではありません)
ビジネス ロジック クラスについて話しましょう
いわゆるビジネス ロジック クラスは、市場で次のことができるクラスです。 ecshop、phpCMS などの特定の機能製品を実装します。このタイプの製品の特徴は、典型的なビジネス ロジックが実装されており、その実装が非常に優れていることです。このように、コードを学ぶと、典型的なビジネス ロジックの特定の側面も理解でき、何を理解できるかがわかります。時間がある、何をするか。
たとえば、Ecshop を学習している場合は、典型的なモールが持つべきビジネス ロジックを理解できるようになり、同様の機能に遭遇したときに、半分の労力で 2 倍の結果が得られます。
(追伸:そのような製品はたくさんあります、国内だけでなく世界を見ることができますが、後で国産製品を使用する可能性が資本になります)
上記の製品のいずれかを必ず選択してください。勉強してください。選択に多くの時間を費やさないでください。時間が経つにつれて、熱意が薄れ、まだ正式に読み始めていないことに気づき、選択を終えたばかりです。それは残念です。
最後に、他のことについて話す前に、マニュアルを 2 回読むことを強くお勧めします。 ララベルバー symfony は Java で一般的に使用されるデザインパターンを多く使用していますが、学習に使用する場合は、symfony の方が私には適していると思います。ただし、記述方法は比較的古く、複雑すぎるものが多いです。
Laravel は symfony から分離されており、その書き方と技術は比較的新しいものです。
PHP+C は実用的なアプリケーションのトレンドであり、パフォーマンスと開発効率の両方を考慮する必要があります。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします
