thinkphp がテンプレート ファイルを分離します View
thinkphp のデフォルトのビューは /Application の各モジュールの下にあります;
css や js などのリソース ファイルは /Public ディレクトリに配置されます。
ざっくりこんな感じです
thinkphp
§─アプリケーションプロジェクトの論理ディレクトリ
│ §─共通公開モジュール<br>
│ │ §─...<br>
│ §─Home ホームモジュール<br>
│ │ §─Controller Home コントローラーディレクトリ<br>
│ │ §─...<br>
│ │ §─View Home モジュール下の View ディレクトリ<br>
│ │ │ §─目次<br>
│ │ │ │ §─index.html<br>
│ │ │ │ §─…<br>
│ │ │ §─タグ<br>
│ │ │ │ §─index.html<br>
│ │ │ │ §─add.html<br>
│ │ │ │ §─edit.html<br>
│ │ │ │ §─...<br>
│ §─Admin 管理モジュール<br>
│ │ §─Controller 管理コントローラディレクトリ<br>
│ │ §─...<br>
│ │ §─View Admin モジュール配下の view ディレクトリ<br>
│ │ │ §─目次<br>
│ │ │ │ §─index.html<br>
│ │ │ │ §─...<br>
│ │ │ §─記事<br>
│ │ │ │ §─index.html<br>
│ │ │ │ §─add.html<br>
│ │ │ │ §─edit.html<br>
│ │ │ │ §─…<br>
│ §─…<br>
§─公開リソースファイルディレクトリ<br>
│ §─ホームフロントホームビューディレクトリ <br>
│ │ §─Public フロントデスクの公開ディレクトリ ホーム<br>
│ │ │ §─js home 配下に呼び出される js ファイルディレクトリ<br>
│ │ │ §─css ホーム配下に呼び出される css ファイルディレクトリ<br>
│ │ │ §─画像ホームの下にある画像ファイルディレクトリ <br>
│ §─管理フロントデスクのホームビューディレクトリ <br>
│ │ §─Public フロントデスクの公開ディレクトリ ホーム<br>
│ │ │ §─js home 配下に呼び出される js ファイルディレクトリ<br>
│ │ │ §─css ホーム配下に呼び出される css ファイルディレクトリ<br>
│ │ │ §─画像ホームの下にある画像ファイルディレクトリ <br>
│ §─…<br>
§─ThinkPHP フレームワーク システム ディレクトリ<br>ただし、実際の開発では;
View ディレクトリをさまざまなモジュールに分散させることには多くの欠点があります;
まず第一に、複数のテーマを開発するのは非常に面倒で混乱します
;
さらに、gulp などのフロントエンドツールを使用するのは非常に不便です;
私たちが必要とするのは、オリジナルのコードが詰まったディレクトリです。
別のディレクトリには圧縮された html、js、css などがいっぱいです;
Burning Goose のようなディレクトリ構造に直面したときの小さな願いです。
私の表情は黒い疑問符です.jpg;
したがって、すべてのテンプレート ファイル、js、css などを分離し、ルート ディレクトリの /tpl に配置しました。
ここでは、以前に書いた
thinkphp-bjyadmin のディレクトリ構造をそのまま引用しました。
§─アプリケーションプロジェクトの論理ディレクトリ
│ §─共通公開モジュール
│ │ §─共通パブリック機能ディレクトリ
│ │ │ §─functioin.php 公開関数 php ファイル<br>
│ │ §─Conf 公開設定ファイルディレクトリ<br>
│ │ │ §─config.php tp 設定は、フレームワークのデフォルト設定項目をオーバーライドするために使用されます<br>
│ │ │ §─db.php データベース構成 ユーザー名 パスワード等 <br>
│ │ │ §─webconfig.php プロジェクトの Web サイト名、Web サイトを開くかどうかなど。
│ │ §─コントローラー パブリック コントローラー ディレクトリ <br>
│ │ │ §─BaseController.class.php は最も基本的なコントローラーを適用します<br>│ │ │ §─HomeBaseController.class.php ホームベースコントローラーはBaseControllerを継承<br>
│ │ │ §─AdminBaseController.class.php 管理ベースコントローラーはBaseControllerを継承<br>
│ │ │ §─UserBaseController.class.php ユーザーベースコントローラーはBaseControllerを継承<br>
│ │ │ §─…<br>
│ │ §─Model 公開モデルディレクトリ<br>
│ │ │ §─BaseModel.class.php 最も基本的なモデルを適用します<br>
│ │ │ §─ArticleModel.class.php 記事モデル BaseModel を継承<br>
│ │ │ §─UserModel.class.php ユーザーモデルはBaseModelを継承<br>
│ │ │ §─…<br>
│ │ §─タグパブリックタグディレクトリ<br>
│ │ │ §─My.class.php カスタムタグライブラリ<br>
│ │ │ §─…<br>
│ §─Home ホームモジュール<br>
│ │ §─Controller ホームコントローラーディレクトリ HomeBaseController を継承<br>
│ │ │ §─ArticleController.class.php アーティクルコントローラディレクトリ <br>
│ │ │ §─IndexController.class.php ホームコントローラー<br>
│ │ │ §─... <br>
│ §─Admin 管理モジュール<br>
│ │ §─Controller 管理コントローラディレクトリ AdminBaseController を継承<br>
│ │ │ §─IndexController.class.php バックエンド管理ホームページコントローラー<br>
│ │ │ §─... <br>
│ §─User ユーザーモジュール<br>
│ │ §─Controller ユーザーコントローラーディレクトリ UserBaseController を継承<br>
│ │ │ §─IndexController.class.php ユーザー パーソナル センター ホームページ コントローラー <br>
│ │ │ §─... <br>
§─公開リソースファイルディレクトリ<br>
│ §─install インストールブートディレクトリ<br>
│ §─statics 静的リソースディレクトリ<br>
│ │ §─bootstrap ブートストラップフレームワーク<br>
│ │ §─ueditor ueditor エディター<br>
│ │ §─js jqueryなどのサードパーティjsが格納されるディレクトリ<br>
│ │ §─css animate.css およびその他のサードパーティ CSS ディレクトリ<br>
│ │ §─... <br>
§─tpl ビュー ファイル ディレクトリ<br>
│ §─公共公開名鑑<br>
│ │ §─js 公開 js ディレクトリ<br>
│ │ │ §─base.js サイト全体で参照されるjsファイル<br>
│ │ │ §─... <br>
│ │ §─css パブリック css ディレクトリ<br>
│ │ │ §─base.css サイト全体で参照される CSS ファイル <br>
│ │ │ §─... <br>
│ │ §─画像パブリック画像ディレクトリ <br>
│ │ §─public_head.html サイト全体共通のパブリックヘッダー<br>
│ │ §─public_foot.html サイト全体共通のパブリックフッター<br>
│ │ §─... <br>
│ §─ホームフロントホームビューディレクトリ <br>
│ │ §─Public フロントデスクの公開ディレクトリ ホーム<br>
│ │ │ §─js home 配下に呼び出される js ファイルディレクトリ<br>
│ │ │ §─css ホーム配下に呼び出される css ファイルディレクトリ<br>
│ │ │ §─画像ホームの下にある画像ファイルディレクトリ<br>
│ │ §─インデックスホームファイルディレクトリ<br>
│ │ │ §─index.html ホームページ <br>
│ │ │ §─ ...<br>
│ §─管理人 ホームと同じ<br>
│ §─ユーザーはホームと同じ<br>
§─アップロード 公開アップロードディレクトリ<br>│ §─画像 アップロードした画像ディレクトリ<br>
│ │ §─アバター アバターディレクトリ<br>
│ │ §─ueditor ueditor 編集者がアップロードした画像ディレクトリ<br>
│ │ │ ...<br>
│ │ ...<br>
§─ランタイムキャッシュディレクトリ<br>
§─ThinkPHP フレームワーク システム ディレクトリ
他のディレクトリの設計原則は、thinkphp のディレクトリ構造設計経験の概要 http://baijunyao.com/article/60
で確認できます。
HTML を分離した後、最も直感的に感じられるのは次のとおりです。
構造的には、フロントエンドとバックエンドはより独立しています。
ディレクトリを変更したい場合は、まったく自由に変更できます。
このような構造を実装するのは非常に簡単です;
ルートディレクトリのエントリファイルindex.phpファイルにTMPL_PATHを定義するだけです。
元のコードは次のとおりです;
// +---------------------------------------------- --- ----------------------------------
// | ThinkPHP [考えるだけでできる]
// +---------------------------------------------- --- ----------------------------------
// | 著作権 (c) 2006-2014 http://thinkphp.cn 無断複写・転載を禁じます<br />
// +---------------------------------------------- --- ----------------------------------<br />
// | ライセンス済み ( http://www.apache.org/licenses/LICENSE-2.0 )<br />
// +---------------------------------------------- --- ----------------------------------<br />
// | 作成者: liu21st <liu21st@gmail.com><br>
// +---------------------------------------------- --- ----------------------------------<br>
<br>
// アプリケーションエントリーファイル<br>
<br>
// PHP環境を検出<br>
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');<br />
<br />
// デバッグ モードをオンにして、開発段階でオンにし、デプロイ段階でコメントするか、false に設定することをお勧めします。
定義('APP_DEBUG',True);<br />
<br />
// アプリケーションディレクトリを定義します<br />
定義('APP_PATH','./アプリケーション/');<br />
<br />
//ThinkPHPエントリーファイルを導入します<br />
'./ThinkPHP/ThinkPHP.php' が必要です;<br />
<br />
// 親愛なる ^_^ 修正されたコードは次のようなものです。
// +---------------------------------------------- --- ----------------------------------<br />
// | ThinkPHP [考えるだけでできる]<br />
// +---------------------------------------------- --- ----------------------------------<br />
// | 著作権 (c) 2006-2014 http://thinkphp.cn 無断複写・転載を禁じます<br />
// +---------------------------------------------- --- ----------------------------------<br />
// | ライセンス済み ( http://www.apache.org/licenses/LICENSE-2.0 )
// +---------------------------------------------- --- ----------------------------------
// | 作成者: liu21st <liu21st@gmail.com><br>
// +---------------------------------------------- --- ----------------------------------<br>
<br>
// アプリケーションエントリーファイル<br>
<br>
// PHP環境を検出<br>
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');<br />
<br />
// デバッグ モードをオンにして、開発段階でオンにし、デプロイ段階でコメントするか、false に設定することをお勧めします。
定義('APP_DEBUG',True);<br />
<br />
// アプリケーションディレクトリを定義します<br />
定義('APP_PATH','./アプリケーション/');<br />
<br />
// キャッシュディレクトリを定義します<br />
定義('RUNTIME_PATH','./ランタイム/');<br />
<br />
// テンプレート ファイルのデフォルト ディレクトリを定義します<br />
定義("TMPL_PATH","./tpl/");<br />
<br />
//ThinkPHPエントリーファイルを導入します<br />
'./ThinkPHP/ThinkPHP.php' が必要です;<br />
<br />
// 親愛なる ^_^ 背後にコードは必要ありません。注意深いお子様なら、なぜここで RUNTIME_PATH が定義されているのかがわかるでしょう。 <br />
1 つ購入すると 1 つ無料 <br />
ちなみに、キャッシュ ファイル Runtime フォルダーも /Application からルート ディレクトリに分離されます。
プロジェクトがオンラインの場合、ここでキャッシュ ファイルを削除すると便利です。
<br />
まあ、私は乙女座であることを認めます。
/Application が単なる PHP ビジネス コードであることが気に入っています;<br />
純粋で清潔な感じが好きです<br />
あらゆる種類の混乱を拒否してください;<br />
<br />
もちろん、ここで終わりです。
しかし、私たちはもっと良くできるはずです;<br />
/Application/Common/Conf/config.php ファイル <br /><?php
にいくつかのディレクトリを定義する必要もあります。配列を返します(
//'配置项'=>'配置值'
'TMPL_PARSE_STRING' => array( // 定义常用回線
'__PUBLIC__' => __ROOT__.'/パブリック',
'__HOME_CSS__' => __ROOT__.trim(TMPL_PATH,'.').'Home/Public/css',
'__HOME_JS__' => __ROOT__.trim(TMPL_PATH,'.').'Home/Public/js',
'__HOME_IMAGES__' => __ROOT__.trim(TMPL_PATH,'.').'ホーム/パブリック/画像',
'__ADMIN_CSS__' => __ROOT__.trim(TMPL_PATH,'.').'Admin/Public/css',
'__ADMIN_JS__' => __ROOT__.trim(TMPL_PATH,'.').'Admin/Public/js',
「__ADMIN_IMAGES__」 => __ROOT__.trim(TMPL_PATH,'.').'Admin/Public/images',
'__ADMIN_ACEADMIN__' => __ROOT__.trim(TMPL_PATH,'.').'Admin/Public/aceadmin',
'__PUBLIC_CSS__' => __ROOT__.trim(TMPL_PATH,'.').'Public/css',
'__PUBLIC_JS__' => __ROOT__.trim(TMPL_PATH,'.').'Public/js',
'__PUBLIC_IMAGES__' => __ROOT__.trim(TMPL_PATH,'.').'パブリック/画像',
'__USER_CSS__' => __ROOT__.trim(TMPL_PATH,'.').'ユーザー/パブリック/css',
'__USER_JS__' => __ROOT__.trim(TMPL_PATH,'.').'ユーザー/パブリック/js',
'__USER_IMAGES__' => __ROOT__.trim(TMPL_PATH,'.').'ユーザー/パブリック/イメージ',
'__APP_CSS__' => __ROOT__.trim(TMPL_PATH,'.').'App/Public/css',
'__APP_JS__' => __ROOT__.trim(TMPL_PATH,'.').'App/Public/js',
'__APP_IMAGES__' => __ROOT__.trim(TMPL_PATH,'.').'App/Public/images'
)、
);
その後、HTML 内でこれらのパスを使用します;
<頭>