myPHPフレームワーク
MVC のアイデアを採用し、純粋なオブジェクト指向と単一エントリをプロジェクトに適用し、カスタマイズされたフレームワークを実装します。 (自分の興味のある練習)
myphpindex.php フロントデスク
请 Web サイト上のすべてのリクエストは、ファイル (エントリ ファイル)index.phpadmin.php をリクエストします。入り口は非常にシンプルで、アクセス許可を定義するために使用され、初期化ファイルを導入します。
初期化ファイルパス
設定ファイル
自動読み込み
システム エラー display_errors='on' error_reporting =E_ALL
主に文字セット設定、パス定数設定、設定ファイル、システムエラーなどを実装し、URL 内のモジュールや動作を解析し、モジュールや動作を自動的に配布するために使用されます (
本質はオブジェクトをインスタンス化して呼び出すことです)オブジェクトのメソッド )。アプリケーション
コントローラーC
モデルM
SQL 文の実行は DB クラス(本フレームワークでは自己カプセル化された PDO クラスを使用)により実行されます。
Vを見る
自分で描いた絵:
MVC の利点: それぞれが互いに干渉することなく独自の役割を実行するため、開発の分業に役立ちます。
コードの再利用に役立ちます。
市場の主流のフレームワークは基本的に MVC の考え方を満たしています。2. フレームワーク myPHP を構築する
Web サイトでは多くのファイルが使用されるため、ディレクトリを使用してそれらをカテゴリに保存するのが合理的な方法です。
フロントエンド部分とバックエンド部分がある Web サイトの場合、2 つの実装ソリューションがあります:
2. フロントエンドとバックエンドは同じホストを共有します。便利(初回プラン)
X: 自分の環境、myphp、Web サイトのルート ディレクトリのパスに従ってください
X: 独自の環境のパスに従って myphpAdmin Web サイトのバックエンドのメイン ディレクトリ
ここで作成されたフォルダー:
2. ホストを作成する
httpd-vhosts.conf 設定ファイルで設定します
3. エントリーファイル
/myphp/説明:
エントリーファイルにACCESS定数を定義し、それ以降のすべてのPHPファイルでこの定数を判定し、存在すれば正当なアクセス、存在しなければ不正なアクセスを意味します
。
インポートされた Application.class.php ファイルでは名前空間が使用されているため、Application クラスにアクセスするときは非修飾アクセスを使用する必要があります。 CoreApplication::run();展開:
プロジェクトの単一のエントリ ポイントを実現するもう 1 つの方法は、Apache の書き換えメカニズムを使用することです。
4. 初期化ファイル
最初にアクセス可能かどうかをテストします。注意
: 以下のクラス名のスクリーンショットは作成しません。すべてのメソッドはクラス内にあります。b. Application クラスで setChar メソッドを作成し、文字セットの設定を完了します
プライベート静的メソッドを作成した後、それを有効にするために単一のアウトレットとしてパブリック静的メソッドにアクセスする必要があります: 注: 以下の他のメソッドの単一アウトレットのスクリーンショットはこれ以上撮りません。それらはすべてここにあります。
c. システムエラーの処理方法を設定します
通常、開発を行うときは、ユーザーにエラーメッセージや不親切なインターフェイスが表示されないように、php.ini
の設定ファイルdisplay_errors=offでオフにするのが一般的です。d、ディレクトリ定数を定義します
phpファイルは頻繁にファイルをインポートするため、インポートされたファイルはディレクトリに保存され、一元管理とメンテナンスの便宜を図るため、ディレクトリ定数としてディレクトリの絶対パスが設定されます。
(echo、var_dumpは、必要な情報が正しいかどうかを確認するためにデバッグを実行することです)
え、設定ファイルを紹介します
設定ファイル内の設定情報は、通常、Web サイト内で変更される可能性のある情報ですが、変更されることはほとんどありません設定ファイルmyphp/config/config.phpを作成します
説明:
PHP ファイルでのリターンは、ステートメント (include、require) を含むファイルにデータを返すことです
概要:
グローバル変数 グローバル世界のみ
ローカル変数は定義された関数内にのみ存在します
クラス属性はメソッド間で使用できます
グローバル定数はクラス間で使用できます
$_SESSION は複数のスクリプト間で使用できます
f、自動読み込み
__autoload(); PHP 自動読み込みメカニズムによって呼び出されます
spl_autoload_register(); PHP によって提供され、__autoload() に似た複数の関数を自動読み込みメカニズムに追加できます。
デバッグは単一のエントリでテストされます:
他のフォルダーの自動ロード: 通常、クラスファイルを含むフォルダーのみがロードされます
指定した関数を自動読み込み関数として登録します:
手順
すべてのloadCore、loadController、loadModelなどはautoLoadによって呼び出されます。
run
メソッドでautoLoadが再度呼び出されます
すべてのクラスのインスタンス化とクラスメソッドの移動はindex.phpにあります5. URLを分析する
l URL ルール:
http://localhost/index.php?module=クラス名&action=クラス内のメソッド名
l クラスの命名規則:
コントローラークラスの場合:
クラス名Controller ファイル名:クラス名Controller.class.php
モデルクラスの場合:
クラス名Modelファイル名:クラス名Model.class.php
(本質は、コントローラーを動的にインスタンス化し、コントローラーのメソッドを呼び出すことです)
注: すべてのメソッドは 1 つの出口からアクセスする必要があります
概要:
l すべての php ファイルは、index.php ファイル内で実行されます。
l アプリケーションはコントローラー ファイルのみを処理します
l コントローラー コントローラー ファイルはモデル モデル ファイルを処理します
l アプリケーションがユーザーの要求に従ってクラス内のメソッドを正確に呼び出すことができる理由は、完全に定義した URL ルールとクラス命名ルールに依存します。
アプリケーション名前空間:
名前空間の命名規則は、ファイルが配置されているディレクトリ名を名前空間名として使用することです。
スペースが含まれる場合は、クラス名の前にスペース名があることを考慮する必要があります。
URL にアクセスすると、デフォルト ルートが転送されます:
URL を介して他のコントローラーのメソッドにアクセスする
追加: pathinfo モードに $_SERVER['PATH_INFO'];
を渡すことができます大まかに説明すると、まだ学ぶことがたくさんあります。
モットー: 人生とは、常に学び、また学び続けることです。