検索
ホームページphp教程php手册PHP フレームワークを段階的に書く (1)

フレームワークの概念は、多くの PHP コード作成者にとって最初から怖がるかもしれません。実際、フレームワークを理解していれば、他の人がより複雑な機能を持ち、より詳細を考慮し、より高度な機能を備えているというだけです。コードの品質。

フレームワークの最も重要なファイルはエントリ ファイルであり、基本的にマスター コントロール スイッチに相当します。すべてのリクエストはこのファイルを通過する必要があります:

1
1

2 define('APP_PATH',dirname(__FILE__).'/..'); //应用路径

3 include APP_PATH.'/Library/Toper/Core/FrontController.class.php';//导入前端控制器 テーブル>

4 $frontController = Tp_FrontController::getInstance();

2

5 $frontController->run();
define('APP_PATH',dirname(__FILE__).'/..') //アプリケーションパス

テーブル> 3

include APP_PATH.'/Library/Toper/Core/FrontController.class.php';//フロントエンド コントローラーをインポートします テーブル>

1
4

2 class Test_IndexController extends Tp_Controller {
$frontController = Tp_FrontController::getInstance();

3     public function indexAction() {
テーブル>

4         echo 'a';
5

5     }
$frontController->run(); テーブル> このファイルが実行できることは 1 つだけで、それは制御をフレームワークに渡すことです。 ご存知のとおり、MVC アプリケーションではすべてのリクエストがコントローラーを経由する必要があるため、比較的単純なコントローラーを作成しましょう: 1 テーブル> 2 クラス Test_IndexController extends Tp_Controller { テーブル> 3 パブリック関数 IndexAction() { テーブル> 4 echo 'a'; テーブル> 5 } テーブル>

6 }

このクラスは Tp_Controller を継承するだけでよく、Tp_Controller は Toper のコントローラーの基本クラスであり、それを継承するだけで、フレームワークによって書かれた一連のメソッドを使用できるため、大幅なコスト削減が可能です。たとえば、ここで記述した関数は、Test モジュール IndexContrller のコントローラーの下にあるインデックス Action にアクセスすることを意味します。

では、モデルをどのように使用するのでしょうか?実はとてもシンプルなのです。

1
1

2 class Test_IndexModel extends Tp_Model {

3     public function test() { テーブル>

4         return 'test';

2

5     }

6 }
クラス Test_IndexModel は Tp_Model を拡張します { テーブル>

3

パブリック関数 test() {

テーブル>

4

1
'テスト' を返す;

2 class Test_IndexController extends Tp_Controller {
テーブル>

3     public function indexAction() {
5 } テーブル> 原理はコントローラーと同じで、フレームワーククラスを継承してメソッドをカスタマイズします。メソッド名には制限はなく、自由に指定できます。 では、モデルを書いた後、コントローラー内でどのように呼び出すのでしょうか?実際には、コントローラー内でモデルクラスをインスタンス化して、対応するメソッドを呼び出す方法なので、先ほどコントローラーのクラスを変更します。 : 1 テーブル> 2 クラス Test_IndexController extends Tp_Controller { テーブル> 3 パブリック関数 IndexAction() { テーブル>

4         $model = new Test_IndexModel();

5         echo $model->test();

6     }

7 }

include ステートメントがないのはなぜですか?

これは、フレームワークがすべてを自動的に実行してくれるためです。もちろん、フレームワークに慣れると、自動インポートを使用しないことも選択できます。

先ほど行った作業にはビューがありませんでしたが、実際には HTML ファイルを作成するにはどうすればよいでしょうか。通常、フレームワークはビュー層でタグ ライブラリを実装します。ループトラバーサルなど、PHP コードでのみ実行できるものは、タグ ライブラリを使用しないと、

タグ ライブラリについてよくわからない場合は、以下のコードを見てください。

1
1

2     

3         test
テーブル>

4     

2

5     

6         
テーブル> 3 テスト テーブル> 4 テーブル> 5 テーブル> 6 テーブル>

7     

8

これは特に難しいことのないコードです。唯一の難点は、フレームワークによって定義されている、文字列を出力するだけであるということです。この機能は PHP コードを使用して簡単に完了できますが、タグ ライブラリを使用すると、フロントエンド開発者は HTML タグを使用するのと同じようにデータを操作できるためです。

すべてのリクエストはコントローラーを通過する必要があることがわかっているため、このビュー ファイルは外部から直接アクセスできないため、コントローラー コードを変更する必要があります。 ! !

1
1

2 class Test_IndexController extends Tp_Controller {

3     public function indexAction() { テーブル>

4         $model = new Test_IndexModel();

2

5         echo $model->test();

6         $this->_display('Test.test');
クラス Test_IndexController extends Tp_Controller {

テーブル>
7     }

8 }
3 パブリック関数 IndexAction() { テーブル> 4 $model = new Test_IndexModel(); テーブル> 5 echo $model->test(); テーブル> 6 $this->_display('Test.test'); テーブル> 7 } テーブル> 8 } テーブル>

Smarty を学習したことがある方は、この表示方法に精通しているかもしれません。実際、この関数の機能はテンプレート ファイルを表示することです。 ! !

さて、基本的な MVC アプリケーションがセットアップされました。難しくありませんか? ! !

効果を確認するには次の 2 つの方法があります:

1.CGI:

ブラウザを開き、ドメイン名が localhost/testframework の場合、localhost/testframework/Public/index.php/Test/Index/index を設定するとアクセスできます。 www.a.com などの仮想ホストがある場合は、www.a.com/Test/Index/index を使用するだけでアクセスできます。

2.CLI:

コマンドラインから PHP スクリプトを直接実行する場合は、Public ディレクトリの下にある phpindex.php m:test c:Index a:index を使用します。

フレームワークを使用して MVC アプリケーションを実装しました。それでは、フレームワークを使用して MVC アプリケーションを構築してみてはいかがでしょうか?

それについては次回お話しますので、引き続き注目してください! ! ! !



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。