PHP CodeIgniterフレームワークの動作原理に関する研究、codeigniter Framework_PHPチュートリアル
PHP CodeIgniter フレームワーク、codeigniter フレームワークの動作原理の研究
CodeIgniter (以下、CI、公式 Web サイトおよび中国語 Web サイトと呼びます) は、人気のある PHP フレームワークであり、小さいながらも強力で、シンプルで軽量で、優れた拡張性を備えています。国内でも人気です。一方、CI は時代に追いついていず、PHP5.3 以降の一部の機能をサポートしていないため、比較的古いプロジェクトに適しています。それでも、CI は依然として優れたフレームワークであり、コアが小さく、ソース コードが洗練されており、学習に適しています。
CIは使いやすく、Webアプリケーションを簡単に開発できます。まずはCIワークフロー図を見てみましょう(ここの内容はhttp://codeigniter.org.cn/user_guide/overview/appflow.htmlから引用しています)
、
1.index.php は、CodeIgniter の実行に必要な基本リソースを初期化するフロントエンド コントローラーとして機能します。
2.ルーターは HTTP リクエストをチェックして、誰がリクエストを処理すべきかを決定します。
3. キャッシュ ファイルが存在する場合、通常のシステム実行シーケンスをバイパスし、ブラウザに直接送信されます。
4. セキュリティ。 HTTP リクエストとユーザーが送信したデータは、アプリケーション コントローラーがロードされる前にフィルタリングされます。
5. コントローラーは、モデル、コア ライブラリ、ヘルパー関数、および特定のリクエストを処理するために必要なその他のリソースを読み込みます。
6. 最終ビューでは、Web ブラウザに送信されたコンテンツがレンダリングされます。キャッシュがオンになっている場合は、ビューが最初にキャッシュされるため、今後のリクエストに使用できるようになります。
上記は一般的なプロセスを示しています。では、ブラウザーでレンダリングされたページを見ると、プログラムは内部的にどのように正確に動作するのでしょうか?
以下は、CI フレームワークによってロードされる主なファイルの実行順のリストと、それらの機能の簡単な紹介です。
01.index.php
使用環境(ENVIRONMENT)、フレームワークパス(system_path、BASEPATH)、アプリケーションディレクトリ(application_folder)、アプリケーションパス(APPPATH)などを定義し、CIコアファイルをロード(require)します
02. BASEPATH/core/CodeIgniter.php (ps. 実際には、BASEPATH には最後のファイル区切り文字 '/' が含まれていますが、わかりやすく表示するためにここに追加の '/' が追加されています)
フレームワーク全体の中核部分であるシステム初期化ファイルは、ここで一連の基本クラスをロードし、このリクエストを実行します
03.BASEPATH/core/Common.php
共通ファイルには、load_class()、get_config() など、グローバルに使用するための一連の基本関数とパブリック関数が含まれています。
04.ベースパス/コア/ベンチマーク
これは、デフォルトでアプリケーションの各ステージの実行ポイントをマークして実行時間を取得するベンチマーク テスト クラスです。監視ポイントを自分で定義することもできます。
05.BASEPATH/core/Hooks.php
CI_Hooks はフレームワーク拡張の中核となるフック クラスで、プログラムで許可されているさまざまな段階でフック ポイントを挿入し、カスタマイズしたクラス、関数などを実行できます。
06.BASEPATH/core/Config.php
構成ファイル管理クラス、構成のロード、読み取り、または設定
07. BASEPATH/core/URI.php、BASEPATH/core/Router.php
URI クラスは、要求された URI を解析するのに役立ち、Router クラスで使用するために URI を分割する一連の関数を提供します
08.BASEPATH/core/Router.php
ルーティング クラスは、要求された URI とユーザー設定のルート (APPPATH/config/routes.php) を通じて、指定された処理関数 (通常はコントローラー インスタンスのアクション関数) にユーザー リクエストを分散します。
09. BASEPATH/core/Output.php、BASEPATH/core/Input.php
Input クラス。リクエストの入力パラメータを処理し、それらを取得する安全な方法を提供します。出力クラスは最終的な実行結果を送信し、キャッシュ機能も担当します
10.ベースパス/core/Controller.php
コントローラー基本クラス。シングルトン モードを使用して、アプリケーション全体の中心となる外部の世界にインスタンスを提供します。これはスーパー オブジェクトであり、アプリケーション内にロードされたクラスはコントローラーのメンバー変数になることができます。これは非常に重要であり、後で説明します。
11.APPPATH/controllers/$RTR->fetch_directory().$RTR->fetch_class().'.php'
ルーティング関数を通じて、コントローラー名を取得し、実際のコントローラークラス(サブクラス)をインスタンス化します
12. ベースパス/core/Loader.php
CI_Loaderは、さまざまなクラスライブラリ、モデル、ビュー、データベース、ファイルなどをアプリケーションにロードし、コントローラーのメンバー変数として設定するために使用されます
13. call_user_func_array は処理関数を呼び出します
ルーティングにより、アクション関数名を取得し、Controller->action()関数を呼び出し、アプリケーションロジックを処理します。実際の業務処理ロジックはアクション関数に記述されます。
14. $OUT->_display() はコンテンツを出力します
上記はアプリケーション全体の最も基本的な処理の流れです。以下では、コア コンテンツ コードを選択して説明し、CI の理解を深めます:
リーリー

ホット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)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
