首頁 > php教程 > php手册 > thinkphp把模板檔View獨立出來

thinkphp把模板檔View獨立出來

WBOY
發布: 2016-10-17 09:12:11
原創
1227 人瀏覽過

thinkphp把模板檔View獨立出來
thinkphp預設的View都是在/Application各個模組下的;
css、js之類的資源檔案是放在/Public目錄下;
大致上是這個樣子的;
thinkphp├─Application 專案邏輯目錄<br> │  ├─Common 公共模組<br> │  │  ├─...<br> │  ├─Home  Home模組<br> │  │  ├─Controller  Home控制器目錄<br> │  │  ├─...<br> │  │  ├─View  Home模組下的視圖目錄<br> │  │  │  ├─Index<br> │  │  │  │  ├─index.html<br> │  │  │  │  ├─...<br> │  │  │  ├─Tag<br> │  │  │  │  ├─index.html<br> │  │  │  │  ├─add.html<br> │  │  │  │  ├─edit.html<br> │  │  │  │  ├─...<br> │  ├─Admin  Admin模組<br> │  │  ├─Controller  Admin控制器目錄<br> │  │  ├─...<br> │  │  ├─View  Admin模組下的視圖目錄<br> │  │  │  ├─Index<br> │  │  │  │  ├─index.html<br> │  │  │  │  ├─...<br> │  │  │  ├─Article<br> │  │  │  │  ├─index.html<br> │  │  │  │  ├─add.html<br> │  │  │  │  ├─edit.html<br> │  │  │  │  ├─...<br> │  ├─...<br> ├─Public 資源檔案目錄<br> │  ├─Home  前台Home檢視目錄   <br> │  │  ├─Public 前台Home的公共目錄<br> │  │  │  ├─js  home下所呼叫的js檔案目錄<br> │  │  │  ├─css  home下所呼叫的css檔案目錄<br> │  │  │  ├─images  home下所呼叫的圖片檔案目錄 <br> │  ├─Admin  前台Home檢視目錄   <br> │  │  ├─Public 前台Home的公共目錄<br> │  │  │  ├─js  home下所呼叫的js檔案目錄<br> │  │  │  ├─css  home下所呼叫的css檔案目錄<br> │  │  │  ├─images  home下所呼叫的圖片檔案目錄 <br> │  ├─...<br> ├─ThinkPHP 框架系統目錄但是在實際開發中;
這樣把View目錄分散到各個模組下是有很多弊端的;
首先開發多套主題相當之麻煩相當之混亂;
再使用gulp這類前端工具很不便利;
我們想要的是某個目錄下全是原始碼;
另一個目錄下全是壓縮後的html、js、css等;
燃鵝;這樣一個小願望在面對這樣的目錄結構時;
我的表情是 黑人問號.jpg;

所以;我是把所有的範本檔案和js、css等獨立出來放在根目錄下的/tpl中的;
這裡偷個懶;直接把以前寫的目錄結構拿來了;thinkphp-bjyadmin<br> ├─Application 專案邏輯目錄<br> │  ├─Common 公共模組<br> │  │  ├─Common  公共函數目錄<br> │  │  │  ├─functioin.php 公用函數php檔案<br> │  │  ├─Conf  公共設定檔目錄<br> │  │  │  ├─config.php  tp的設定 用於覆寫框架預設設定項<br> │  │  │  ├─db.php  資料庫設定 使用者名稱 密碼等<br> │  │  │  ├─webconfig.php  專案的設定;網站名稱;是否開啟網站等<br> │  │  ├─Controller  公共控制器目錄 <br> │  │  │  ├─BaseController.class.php 應用最基本的控制器<br>│  │  │  ├─HomeBaseController.class.php  Home基礎控制器繼承BaseController<br> │  │  │  ├─AdminBaseController.class.php  Admin基礎控制器繼承BaseController<br> │  │  │  ├─UserBaseController.class.php  User基礎控制器繼承BaseController<br> │  │  │  ├─...<br> │  │  ├─Model  公共模式目錄<br> │  │  │  ├─BaseModel.class.php  應用最基礎的Model<br> │  │  │  ├─ArticleModel.class.php 文章model  繼承BaseModel<br> │  │  │  ├─UserModel.class.php  使用者model 繼承BaseModel<br> │  │  │  ├─...<br> │  │  ├─Tag  公共標示目錄<br> │  │  │  ├─My.class.php  自訂的標籤庫<br> │  │  │  ├─...<br> │  ├─Home  Home模組<br> │  │  ├─Controller  Home控制器目錄 繼承HomeBaseController<br> │  │  │  ├─ArticleController.class.php 文章控制器目錄  <br> │  │  │  ├─IndexController.class.php  首頁控制器<br> │  │  │  ├─ ...  <br> │  ├─Admin  Admin模組<br> │  │  ├─Controller  Admin控制器目錄 繼承AdminBaseController<br> │  │  │  ├─IndexController.class.php  後台管理首頁控制器<br> │  │  │  ├─ ...  <br> │  ├─User  User模組<br> │  │  ├─Controller  User控制器目錄 繼承 UserBaseController<br> │  │  │  ├─IndexController.class.php  使用者個人中心首頁控制器<br> │  │  │  ├─ ...  <br> ├─Public 資源檔案目錄<br> │  ├─install      安裝引導目錄<br> │  ├─statics      靜態資源目錄<br> │  │  ├─bootstrap bootstrap框架<br> │  │  ├─ueditor   ueditor編輯器<br> │  │  ├─js        jquery等第三方js存放的目錄<br> │  │  ├─css       animate.css等第三方css目錄<br> │  │  ├─ ...      <br> ├─tpl 視圖檔案目錄<br> │  ├─Public  公共目錄<br> │  │  ├─js  公共js目錄<br> │  │  │  ├─base.js 全站都引用的js檔案<br> │  │  │  ├─ ...  <br> │  │  ├─css  公共css目錄<br> │  │  │  ├─base.css 全站都引用的css檔案  <br> │  │  │  ├─ ...  <br> │  │  ├─images 公共圖片目錄 <br> │  │  ├─public_head.html  全站通用的公共頭部<br> │  │  ├─public_foot.html  全站通用的公共底部<br> │  │  ├─...  <br> │  ├─Home  前台Home檢視目錄   <br> │  │  ├─Public 前台Home的公共目錄<br> │  │  │  ├─js  home下所呼叫的js檔案目錄<br> │  │  │  ├─css  home下所呼叫的css檔案目錄<br> │  │  │  ├─images  home下所呼叫的圖片檔案目錄<br> │  │  ├─Index  首頁檔案目錄<br> │  │  │  ├─index.html 首頁  <br> │  │  │  ├─ ...<br> │  ├─Admin  同Home<br> │  ├─User   同Home<br> ├─Upload  公共上傳目錄<br>│  ├─images   上傳的圖片目錄<br> │  │  ├─avatar  頭像目錄<br> │  │  ├─ueditor ueditor編輯器上傳的圖片目錄<br> │  │  │ ...<br> │  │ ...<br> ├─Runtime 快取目錄<br> ├─ThinkPHP 框架系統目錄其他目錄的設計原則可以回顧 thinkphp的目錄結構設計經驗摘要 http://baijunyao.com/article/60
我們把html獨立出來後;最直觀的感受是;
結構上前後端更獨立了;以前是大雜燴;
而且我們一言不合;想改目錄就改目錄;相當自由;

那要實現這樣的結構非常簡單;
只需要在根目錄的入口文件index.php檔案中定義TMPL_PATH就可以了;
原本的程式碼是這樣的;<?php <br /> // +----------------------------------------------- -----------------------<br> // | ThinkPHP [ WE CAN DO IT JUST THINK ]<br> // +----------------------------------------------- -----------------------<br> // | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.<br> // +----------------------------------------------- -----------------------<br> // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )<br> // +----------------------------------------------- -----------------------<br> // | Author: liu21st <liu21st><br> // +----------------------------------------------- -----------------------<br> <br> // 應用入口文件<br> <br> // 偵測PHP環境<br> if(version_compare(PHP_VERSION,'5.3.0',' 5.3.0 !');<br> <br> // 開啟偵錯模式 建議開發階段開啟 部署階段註解或設為false<br> define('APP_DEBUG',True);<br> <br> // 定義應用程式目錄<br> define('APP_PATH','./Application/');<br> <br> // 引入ThinkPHP入口檔案<br> require './ThinkPHP/ThinkPHP.php';<br> <br> // 親^_^ 後面不需要任何程式碼了 就是如此簡單</liu21st>修改後的程式碼是這樣的;<?php <br /> // +----------------------------------------------- -----------------------<br> // | ThinkPHP [ WE CAN DO IT JUST THINK ]<br> // +----------------------------------------------- -----------------------<br> // | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.<br> // +----------------------------------------------- -----------------------<br> // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )<br> // +----------------------------------------------- -----------------------<br> // | Author: liu21st <liu21st><br> // +----------------------------------------------- -----------------------<br> <br> // 應用入口文件<br> <br> // 偵測PHP環境<br> if(version_compare(PHP_VERSION,'5.3.0',' 5.3.0 !');<br> <br> // 開啟偵錯模式 建議開發階段開啟 部署階段註解或設為false<br> define('APP_DEBUG',True);<br> <br> // 定義應用程式目錄<br> define('APP_PATH','./Application/');<br> <br> // 定義快取目錄<br> define('RUNTIME_PATH','./Runtime/');<br> <br> // 定義範本檔案預設目錄<br> define("TMPL_PATH","./tpl/");<br> <br> // 引入ThinkPHP入口檔案<br> require './ThinkPHP/ThinkPHP.php';<br> <br> // 親^_^ 後面不需要任何代碼了 就是如此簡單</liu21st>細心的童鞋可能發現了;這裡還定義了個RUNTIME_PATH是為嘛呢?
買一送一;
這裡是順便把快取檔案Runtime資料夾也從/Application獨立到根目錄下了;
當項目上線後;關閉了調試模式;來這裡刪除緩存檔案方便;

恩;好;我承認我是處女座;
就是喜歡/Application下只是php業務代碼;
就是喜歡純粹乾淨的感覺;
排斥各種混雜;

當然;到這裡已經可以結束了;
但是我們還可以做的更好;
還需要在/Application/Common/Conf/config.php檔案中定義一些目錄;<?php <br />返回數組(<br>     //'配置項目'=>'配置值'<br>     'TMPL_PARSE_STRING'      => array(    //定義常用路徑<br>         '__PUBLIC__'         => __ROOT__.'/公共',<br>         '__HOME_CSS__'       => __ROOT__.trim(TMPL_PATH,'.').'Home/Public/css',<br>         '__HOME_JS__'        => __ROOT__.trim(TMPL_PATH,'.').'Home/Public/js',<br>         '__HOME_IMAGES__'    => __ROOT__.trim(TMPL_PATH,'.').'Home/Public/images',<br>         '__ADMIN_CSS__'      => __ROOT__.trim(TMPL_PATH,'.').'Admin/Public/css',<br>         '__ADMIN_JS__'       => __ROOT__.trim(TMPL_PATH,'.').'Admin/Public/js',<br>         '__ADMIN_IMAGES__'   => __ROOT__.trim(TMPL_PATH,'.').'管理/公開/影像',<br>         '__ADMIN_ACEADMIN__'=> __ROOT__.trim(TMPL_PATH,'.').'Admin/Public/aceadmin',<br>         '__PUBLIC_CSS__'     => __ROOT__.trim(TMPL_PATH,'.').'Public/css',<br>         '__PUBLIC_JS__'      => __ROOT__.trim(TMPL_PATH,'.').'公/js',<br>         '__PUBLIC_IMAGES__'  =>; __ROOT__.trim(TMPL_PATH,'.').'公/影像',<br>         '__USER_CSS__'       => __ROOT__.trim(TMPL_PATH,'.').'使用者/大眾/css',<br>         '__USER_JS__'        => __ROOT__.trim(TMPL_PATH,'.').'使用者/大眾/js',<br>         '__USER_IMAGES__'    => __ROOT__.trim(TMPL_PATH,'.').'使用者/公開/影像',<br>         '__APP_CSS__'        => __ROOT__.trim(TMPL_PATH,'.').'App/Public/css',<br>         '__APP_JS__'         => __ROOT__.trim(TMPL_PATH,'.').'App/Public/js',<br>         '__APP_IMAGES__'     => __ROOT__.trim(TMPL_PATH,'.').'應用程式/公開/影像'<br>     ),<br> );<br> 然後以後在html中就使用這些路徑了;<br> html><br> <br> <br>     <br>     <title>白俊遙部落格</title> <br>     <css></css><br> 頭><br> <br> <br> <js></js><br> 身體><br> 白俊遙部落格 http://baijunyao.com/article/90

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板