私は最近自分で php フレームワークを書きました。github のアドレスは次のとおりです:
blakeFez-PHP-フレームワーク
このフレームワークは機能が比較的少ないため、小規模な個人 Web サイトに適しています。
フレームワークのディレクトリ構造は次のとおりです:
<code>/command <span>//该目录用于存放cli模式下的command类</span> /controller <span>//该目录用于存放cgi模式下的controller类</span> /frame <span>//该目录用于存放框架的核心代码</span> BlakeFez.php <span>//这是框架的核心文件</span> Command.php <span>//command的基类,所有的command类都要继承该类</span> CommonMysql.php <span>//实现的一个mysql类</span> CommonRequest.php <span>//实现的一个获取url请求类,最好使用</span><span>//CommonRequest::getRequest('option')来代替</span><span>//$_GET['option']和$_POST['option']</span> Controller.php <span>//controller类的基类,所有的controller类都要</span><span>//继承该类</span> Model.php <span>//model类的基类,所有的model都要继承该类</span> /model <span>//该目录用于存放model类</span> /service <span>//该目录用于存放公用的service类</span> /<span>static</span><span>//该目录用于存放js、css、图片等</span> /view <span>//该目录用于存放前端模板文件</span></code>
フレームワークは CGI モードと CLI モードの両方をサポートします。
CGIモードでの使用方法は以下の通りです:
①、ルーティング方法
たとえば、次のような URL があります: http://host/index.php?c=index&a=welcome
次に、/controller ディレクトリ内の IndexController クラスの welcome メソッドが実際にリクエストされます。
②、フロントエンドレンダリング
コントローラーで、
<code>$<span>this</span>-><span>out</span>[<span>'title'</span>] = <span>'welcome to china'</span>;</code>
を使用して変数 title をフロントエンドに出力します。フロントエンド テンプレート ファイルでは、この変数を次のように使用できます:
<code><span><<span>title</span>></span><span><span><?php</span><span>echo</span><span>$title</span>;<span>?></span></span><span></<span>title</span>></span></code>
フロントエンド ファイルの命名方法は次のようになります:
たとえば、IndexController クラスの welcome メソッドに対応するフロントエンド ファイルは次のとおりです:
/view/index/welcome.php
非同期リクエストでフロントエンドレンダリングが必要ない場合は、コントローラー内で次のように記述できます:
<code><span>$this</span><span>-></span>outType <span>=</span><span>'json'</span>;</code>
CGIモードでは、使用方法は次のとおりです:
php SRC_PATH/index.php -c インデックス -a インデックス
この名前付け行は、コマンド ディレクトリ内の IndexCommand クラスのインデックス メソッドを実行します。
著作権表示: この記事はブロガーによるオリジナル記事です。転載する場合は出典を明記してください。
以上、非常にシンプルな PHP フレームワークをさまざまな側面を含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。