前端獨立之前的目錄
thinkphp默認(rèn)的View模板文件都是在/Application各個模塊下的,css、js之類的資源文件是放在/Public目錄下,大致是這個樣子的:
ThinkphpSample
├─Application 項目邏輯目錄
│ ├─Common 公共模塊
│ │ ├─...
│ ├─Home Home模塊
│ │ ├─Controller Home控制器目錄
│ │ ├─...
│ │ ├─View Home模塊下的視圖目錄
│ │ │ ├─Index
│ │ │ │ ├─index.html
│ │ │ │ ├─...
│ ├─Admin Admin模塊
│ │ ├─Controller Admin控制器目錄
│ │ ├─...
│ │ ├─View Admin模塊下的視圖目錄
│ │ │ ├─Index
│ │ │ │ ├─index.html
│ │ │ │ ├─...
│ │ │ ├─Article
│ │ │ │ ├─index.html
│ │ │ │ ├─add.html
│ │ │ │ ├─edit.html
│ │ │ │ ├─...
│ ├─...
├─Public 資源文件目錄
│ ├─Weixin 微信前端靜態(tài)資源目錄
│ │ ├─js home下調(diào)用的js文件目錄
│ │ ├─css home下調(diào)用的css文件目錄
│ │ ├─images home下調(diào)用的圖片文件目錄
│ ├─Admin 管理后臺靜態(tài)資源目錄
│ │ ├─js home下調(diào)用的js文件目錄
│ │ ├─css home下調(diào)用的css文件目錄
│ │ ├─images home下調(diào)用的圖片文件目錄
│ ├─...
├─ThinkPHP 框架系統(tǒng)目錄
但在實際開發(fā)中,這樣把前端文件分散到各個模塊下是有很多弊端的:
- 使用gulp這類前端工具很不便利;
如果想要在src目錄下全是原始代碼,在dest目錄下全是壓縮后的html理逊、js、css等盒揉,這是難以實現(xiàn)的晋被。
前端獨立之后的目錄
把所有的模板文件和js、css等獨立出來放在根目錄下的/tpl中的刚盈;
如下:
ThinkphpSample
├─Application 項目邏輯目錄
│ ├─Common 公共模塊
│ │ ├─Common 公共函數(shù)目錄
│ │ │ ├─functioin.php 公共函數(shù)php文件
│ │ ├─Conf 公共配置文件目錄
│ │ │ ├─config.php tp的配置 用于覆蓋框架默認(rèn)配置項
│ │ │ ├─db.php 數(shù)據(jù)庫配置 用戶名 密碼等
│ │ │ ├─webconfig.php 項目的配置羡洛;網(wǎng)站名;是否開啟網(wǎng)站等
│ │ ├─Controller 公共控制器目錄
│ │ │ ├─BaseController.class.php 應(yīng)用最基礎(chǔ)的控制器
│ │ │ ├─HomeBaseController.class.php Home基礎(chǔ)控制器繼承BaseController
│ │ │ ├─AdminBaseController.class.php Admin基礎(chǔ)控制器繼承BaseController
│ │ │ ├─UserBaseController.class.php User基礎(chǔ)控制器繼承BaseController
│ │ │ ├─...
│ │ ├─Model 公共模型目錄
│ │ │ ├─BaseModel.class.php 應(yīng)用最基礎(chǔ)的Model
│ │ │ ├─ArticleModel.class.php 文章model 繼承BaseModel
│ │ │ ├─UserModel.class.php 用戶model 繼承BaseModel
│ │ │ ├─...
│ ├─Home Home模塊
│ │ ├─Controller Home控制器目錄 繼承HomeBaseController
│ │ │ ├─ArticleController.class.php 文章控制器目錄
│ │ │ ├─IndexController.class.php 首頁控制器
│ │ │ ├─ ...
│ ├─Admin Admin模塊
│ │ ├─Controller Admin控制器目錄 繼承AdminBaseController
│ │ │ ├─IndexController.class.php 后臺管理首頁控制器
│ │ │ ├─ ...
│ ├─User User模塊
│ │ ├─Controller User控制器目錄 繼承UserBaseController
│ │ │ ├─IndexController.class.php 用戶個人中心首頁控制器
│ │ │ ├─ ...
├─Public 資源文件目錄
│ ├─static 靜態(tài)資源目錄
│ │ ├─js jquery等第三方j(luò)s存放的目錄
│ │ ├─css animate.css等第三方css目錄
│ │ ├─ ...
│ ├─weixin 靜態(tài)資源目錄
│ │ ├─js jquery等第三方j(luò)s存放的目錄
│ │ ├─css animate.css等第三方css目錄
│ │ ├─ ...
├─tpl 視圖文件生產(chǎn)目錄
│ ├─Public 公共目錄
│ │ ├─js 公共js目錄
│ │ │ ├─base.js 全站都引用的js文件
│ │ │ ├─ ...
│ │ ├─css 公共css目錄
│ │ │ ├─base.css 全站都引用的css文件
│ │ │ ├─ ...
│ │ ├─images 公共圖片目錄
│ │ ├─...
│ ├─Home 前臺Home視圖目錄
│ │ ├─Index 首頁文件目錄
│ │ │ ├─index.html 首頁
│ │ │ ├─ ...
│ ├─Admin 同Home
│ ├─User 同Home
├─tpl_src 視圖文件源目錄
│ ├─Public 公共目錄
│ │ ├─js 公共js目錄
│ │ │ ├─base.js 全站都引用的js文件
│ │ │ ├─ ...
│ │ ├─css 公共css目錄
│ │ │ ├─base.css 全站都引用的css文件
│ │ │ ├─ ...
│ │ ├─images 公共圖片目錄
│ │ ├─...
│ ├─Home 前臺Home視圖目錄
│ │ ├─Index 首頁文件目錄
│ │ │ ├─index.html 首頁
│ │ │ ├─ ...
│ ├─Admin 同Home
│ ├─User 同Home
├─Runtime 緩存目錄
├─ThinkPHP 框架系統(tǒng)目錄
如何做到藕漱?
- 在根目錄的入口文件index.php文件中定義TMPL_PATH
新增define("TMPL_PATH","./tpl/");
<?php
// 應(yīng)用入口文件
// 檢測PHP環(huán)境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
// 開啟調(diào)試模式 建議開發(fā)階段開啟 部署階段注釋或者設(shè)為false
define('APP_DEBUG',True);
// 定義應(yīng)用目錄
define('APP_PATH','./Application/');
// 定義模板文件默認(rèn)目錄
define("TMPL_PATH","./tpl/");
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
- 在/Application/Common/Conf/config.php文件中定義靜態(tài)資源目錄
<?php
return array(
'TMPL_PARSE_STRING'=>array(
'__PUBLIC__'=>__ROOT__.trim(TMPL_PATH,'.').'/Public/Static'
)
);