独自の PHP フレームワークを開発するにはどのような知識を蓄えておく必要がありますか?
返信内容:
他の人がフレームワークを開発すると聞くと、多くの人は最初に車輪の再発明を考えるでしょう。実際、ホイールを作るプロセスは知識を急速に蓄積するプロセスであり、自分の欠点をすぐに発見し、発見していない知識ポイントを学ぶことができます。したがって、ある程度の PHP の基礎を持っている人は、全員が完全な基本フレームワークを完成させるよう努めることをお勧めします。
次に、ホイールを構築する以前のプロセスを共有しましょう。
1. 複数のフレームワークを試して、使用方法のドキュメントを読んでみてください。その目的は、その機能を理解して発見することです。 . いくつかのより良い使用設計;
2. ドキュメントを読みながら、この部分の実装原理を並行して考えます。理解できない場合は、メモするか、Github にアクセスしてソース コードを参照してください。コードの構造に慣れていない場合は、見つけるのが難しいかもしれないので、最初に書き留めることをお勧めします)。
3. プロジェクトの構造を見て、この構造の意味を考えてください。エントリ ファイルと静的リソースを他のディレクトリから分離する理由は何ですか。
4. ソース コードの実行プロセス (エントリから出力まで) とエラー処理を試してください。 、テンプレート エンジン、構成、その他の理解すべき点 (基盤が許可する場合は、このプロセスで上記の疑問を解決します);
5. まず、大まかな機能のリストを作成し、必要なポイントを書き留めます。実装する;
6. 次に、コード構造を整理する方法を考えます。実践的な経験があまりない場合は、最も慣れている方法でコードを整理します (最初に実装してから最適化します)。 7. まずは基本的な Hello World を実行してください!;
8. 少しずつ機能を追加していきます。
9. ここで機能を追加するときは、すべてのコンポーネントを実装してみてください。ファイルのアップロードやエラー処理など、自分で実装できるものはすべて実践的な知識を得ることが目的です。
このプロセスは、基礎が少し弱い人にとっては特に難しいかもしれません。そのため、行き詰まった点に遭遇した場合は、まずその点で問題を解決し、すぐに知識を追加してから来てください。戻って続行します。
フレームワークを構築するプロセスで通常使用されるいくつかのポイントをまとめてみましょう (以下は順番ではありません):
1. MVC
2. 自動読み込み: PHP: 自動クラス
;
3. エラー処理: http://
php.net/manual/zh/book.errorfunc.php;4. PHP 標準ライブラリ (SPL)PHP: SPL - マニュアル;
5. 出力バッファー制御: PHP: 出力コントロール ;
6. PHP オプション/情報: PHP:PHP オプション/情報;
7. データベース抽象化レイヤー: PHP: データベース抽象化レイヤー ;
8. セッション拡張: PHP: セッション拡張 ;
9. リフレクション: http://
php.net/manual/zh/book .reflection.php;10. クラスとオブジェクト: PHP: クラス/オブジェクト;
11. 画像処理と GD: PHP: GD - マニュアル;
12. 電子メール関連の SMTP;13. ファイル システム: PHP: ファイルシステム
;
14. 定義済み変数: PHP: 定義済み変数 ;
15. 文字列処理: PHP: 文字列 - 手動;
15. 正規表現: http:/ /
php.net/manual/en/book.pcre.php;上記基本についてはこれで十分かもしれませんが、上記の各リンクには多くのコンテンツが含まれていますが、一般的に使用されるものをマスターしておくと、検索エンジンを使用して理解することができます。
フレームワークにさらに賢い機能や豊富な機能を追加したい場合は、以下の知識ポイントを参照してください。
1. 一般的な設計パターン: ファクトリ、シングルトン、外観、オブザーバーなど。
2. イテレータなどの事前定義されたインターフェイス: PHP: 事前定義されたインターフェイス
;
3. データベースの拡張: PHP: データベースの拡張;
4. PHP のサポート: 国際化と文字エンコーディングのサポート ;
5. よく使用されるキャッシュ、Redis、Memcache、Apc など;6. ActiveMQ、Beanstalkd などのキュー サービス。 🎜>7. Mongo などのマルチデータベースのサポート;8. イベントとフック;
フレームワークを作成する方法もありますが、ここでは「作成」は適切ではありません。結合フレームワーク。これは、Composer
を使用して、オープン ソース コンポーネントに基づいた独自のフレームワークを組み立てることを意味します。もちろん、初心者がこれを行うことはお勧めできません。多くの基本的なことを運動できなくなる可能性があるためです。個人の技術的能力が比較的成熟していて、プロジェクトを迅速に開発することが目的の場合、これを使用することは間違いなく強力なツールです。
最後に、いくつかの参考フレームワークをお勧めします。
1. Slim Framework - フレームワークの基本機能をすべて満たしており、学習に非常に適したマイクロ フレームワークです。 ;
2 . Silex - Symfony2 コンポーネントに基づくマイクロフレームワーク;
- 明確な構造を持つ PHP フレームワーク。さらに、参考用のチュートリアルがいくつかありますが、最初は自分で試してみることをお勧めします。
1. 独自の PHP MVC フレームワークを作成する (パート 1)
2. PHP を使用して独自の MVC フレームワークを構築する
---2015.02.28 補足---下の階の皆さんからの回答を読んだ後、皆さんが本題から外れていることがわかりました。質問は、「
フレームワークを完成させる方法
」ではなく、「
どのような種類の知識の蓄えが必要ですか?」です。フレームワークを完成させるには N 通りの方法があり、いくつかの回答によると、以下、完成しても何も分かりませんが、なぜフレームワークとして実行できるのか途中で原理が理解できないので、誤解を招かないように慎重に答えてください。 実はとても単純なことなのです。 まず次の知識を習得してください: 1. URL を介したパラメータ処理の受け渡し 2. include の意味を理解する
3. 関数のエコーと定義ができるようになります。
OK、始めましょう
まず、php ファイルindex.php を作成して、さまざまな GET パラメータを通じてさまざまな関数を実行できるようにします。
作曲家を学ぶには、このシリーズをご覧ください。
Composer を使用して、独自の PHP フレームワークを段階的に構築します
<?php function run_it() { $function_name=$_GET['fn']; $function_name();//通过fn参数来运行函数 } run_it();
phphub.org/topics/159 実際、前の人たちはすでにそれを明確にしています。私は以前にあなたのアイデアを経験しました。簡単に言うと、有名な製品を使用する場合、彼らは通常実装に忙しく、マクロの認識が欠けています。したがって、フレームワークを開発するのが通常です。 私も当時は、上で述べたことほど深く考えずに開発しました。 それは単純なルーティング分散と mvc 階層化でした。基本的な棚を設置したら、徐々に改善していきます。 職場で、自分だけで完了するだけで済む 1 回限りの小さなプロジェクトに遭遇した場合は、独自のフレームワークを試してみることができます。 いくつかのシンプルなフレームワークを探すことをお勧めします。個人的には、最も明確な構造を持つ codergniter をお勧めします。
以前ヘルプを見たところ、学者が Laravel 5.0 を使用して小さなアプリケーションを開発していることを知りましたが、まだ自信がなく、このフレームワークに対する知識と理解が不足していました。しかし、このフレームワークの人気の高さを見て、
質問:
私は PHP が好きで、PHP と laravel をマスターしたいと考えています。この場合、基礎から学習して自分でフレームワークを作成する必要があります。 ? フレームワークを書いたことがない場合、各フレームワークの内容について議論するのは無意味です
最後に、フレームワークを書きました。 個人的には、フレームワークを自分で書くことは非常に重要だと感じています。独自の論理的思考、開発アーキテクチャ、そしてこの言語は質的に改善されました。書く過程では、ci tp yii の 3 つのフレームワークのソース コードを参照しながら 2 つのバージョンを作成しました (アイデアだけを見て、ラフを破棄し、エッセンスを選択しました)。ブログの記事 20 件
メイン トピック:
知識が必要
1 ルート分析
2 ルート配布
3 IoC
4 データベースのカプセル化
5 キャッシュのカプセル化
6 テンプレート解析ファイルキャッシュ
7 安全な xss SQL インジェクション
8 http 操作
9 画像操作
10 など多数
すべての部分で多くの知識ポイントが拡張されます
最後に: 自分で書いたフレームワーク
fantiq/phpframework · GitHub
今これをやっているのですが、ちょっと不器用です。興味のある方はお互い勉強しましょう(*^_^*) 動揺 クラス ライブラリとプラグインは単なるクラウドであり、合理的なアーキテクチャ仕様が最も重要です。
象を踊らせるには、強力でありながらできるだけ軽くし、大量のクラスや設定ファイルを参照しないでください。 多くのフレームワークはクラス ライブラリとしか言えません

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











PHPには4つの主要なエラータイプがあります。1。notice:わずかなものは、未定義の変数へのアクセスなど、プログラムを中断しません。 2。警告:通知よりも深刻で、ファイルを含むなど、プログラムを終了しません。 3。ファタラー:最も深刻なのは、機能を呼び出すなど、プログラムを終了します。 4。ParseError:構文エラーは、エンドタグの追加を忘れるなど、プログラムの実行を防ぎます。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

HTTPリクエストメソッドには、それぞれリソースを取得、送信、更新、削除するために使用されるGET、POST、PUT、および削除が含まれます。 1. GETメソッドは、リソースを取得するために使用され、読み取り操作に適しています。 2. POSTメソッドはデータの送信に使用され、新しいリソースを作成するためによく使用されます。 3. PUTメソッドは、リソースの更新に使用され、完全な更新に適しています。 4.削除メソッドは、リソースの削除に使用され、削除操作に適しています。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

Phpoopでは、self ::は現在のクラスを指し、親::は親クラスを指し、静的::は後期静的結合に使用されます。 1.Self ::静的方法と一定の呼び出しに使用されますが、後期静的結合をサポートしていません。 2.Parent ::サブクラスには、親クラスのメソッドを呼び出すために使用され、プライベートメソッドにアクセスできません。 3.Static ::継承と多型に適した後期静的結合をサポートしますが、コードの読みやすさに影響を与える可能性があります。

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。
