ホームページ > バックエンド開発 > PHPチュートリアル > OpenCart フレームワークの操作プロセスの概要

OpenCart フレームワークの操作プロセスの概要

WBOY
リリース: 2016-07-25 09:13:07
オリジナル
1584 人が閲覧しました

フレームワークの運用プロセスの紹介

そのような get リクエスト http://hostname/index.php?route=common/home はどうなりましたか?

1. エントリーファイルindex.phpの実行を開始します。

2. require_once(DIR_SYSTEM . 'startup.php');

PHP の設定を行い、システムのメイン フレームワーク ファイル (システム/エンジンの下のファイル)、いくつかの必要なヘルパーとライブラリを含むいくつかのクラス宣言を読み込みます。

システムの主要なフレームワーク ファイルには以下が含まれます:

レジストリ: 登録者モードを使用してグローバル変数を保存します。コントローラーの基本クラス、モデルの基本クラス、ローダーなどはすべて、このオブジェクトへの参照を保存します。おそらくこのクラスをより多用途にしたいため、シングルトン モードで書かれていません。追加のレジストリ インスタンスを作成して、複数のオブジェクト間で共有できます。

ローダー: 他のファイルを動的にロードするために使用され、モデル、ライブラリ、ヘルパー、データベース、構成、言語をロードする機能を提供します。モデルとデータベースをロードすると、新しいインスタンスが作成され、データ クラスの場合は 1 つだけレジストリ オブジェクトに保存されます。インスタンスが必要です ;

コントローラー、モデル: コントローラーの基本クラスとデータモデルクラスの基本クラスであり、関数は非常に単純です。

アクション: アクションに対応するユーザーからのリクエストは、リクエスト クエリ パラメーター ルートでアクションを初期化します。

フロント: ディストリビューターのリクエスト、ディスパッチアクション

次のフレームワーク プロセスでは、これらのクラスが具体的に何を行うかを紹介します。

3. レジストリ、ローダー、DB、エラー処理関数、および後で使用するいくつかのライブラリを初期化し、これらのライブラリ インスタンスの参照をレジストリ オブジェクトに保存し、コントローラとモデル オブジェクトで直接使用できるように提供します。

4. フロント オブジェクトとアクション オブジェクトを初期化します。このとき、アクションは URL 内のクエリ パラメーター ルートの値「common/home」から構築され、対応するコントローラー ファイル名、クラス名、および実行するメソッドとパラメータ。

5. フロントはアクションのクラス名属性に従って、コントローラーオブジェクトControllerCommonHome (catalog/controller/common/home.php)を作成し、それをレジストリで初期化し、アクションメソッドインデックス(メソッドが渡されない場合、デフォルトは Index ) とパラメーター属性 (none) です。 Index メソッドで ControllerCommonHome->index() を実行し、ビジネス ロジックを処理し、テンプレートをロードし、最後に出力されるコンテンツを保存します。応答内のブラウザ。コントローラーのマジック メソッド __get と __set は両方ともレジストリ オブジェクトから値を取得して割り当てるため、レジストリに保存されたオブジェクトを独自の属性と同じように使用できることに注意してください。例: $this->load->model('catalog/category') は、ローダー オブジェクトのモデル メソッドを呼び出します。

6.index.php の最後の行、$response->output() は、コンテンツをユーザーに返します。

この時点で、フレームワークはユーザーのリクエストを処理しました。

私が書いた opencart プラグイン、opencart Baidu ログインおよび Baidu ウォレット支払いプラグインも参照してください。レスポンシブで PC/モバイルに適応可能です

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート