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

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中