┎━ThinkPHP 框架系統目錄
┃ ┝ ThinkPHP.php 系統公共文件
┃ ┝ Common 公共文件目錄
┃ ┝ Tpl 框架系統模版目錄
┃ ┝ Lang 系統語言包目錄
┃ ┝ PlugIns 公共插件目錄
┃ ┗ Lib 系統基類庫目錄
┃ ┝ Think 系統運行庫(必須)
┃ ┝ Com 擴展類庫包(非必須)
┃ ┗ ORG 擴展類庫包(非必須)
┃
┝━App App 項目目錄
┃ ┝ index.php 項目入口文件(可任意放置)
┃ ┝ Cache 模版緩存目錄
┃ ┝ Common 公共文件目錄(非必須)
┃ ┝ Conf 項目配置目錄
┃ ┝ Data 項目數據目錄
┃ ┝ Html 靜態文件目錄(非必須)
┃ ┝ PlugIns 插件目錄(非必須)
┃ ┝ Tpl 模版文件目錄
┃ ┝ Lang 語言包目錄(非必須)
┃ ┝ Logs 日誌文件目錄
┃ ┝ Temp 數據緩存目錄
┃ ┗ Lib 應用類庫目錄
┃ ┝ Action 控制器(模塊)類目錄
┃ ┝ Model Model 類文件目錄
┃ … 下面的應用目錄可根據須要選擇和定義
┃ ┝ Exception 異常類庫目錄
┃ ┝ Common 公共應用類目錄
┃ ┗ Help 助手類目錄
┃
┃…更多項目目錄(和App 目錄相似,每一個項目採用獨立目錄,便於部署)
┃
┝━Public 網站公共目錄(多項目公用)
┃ ┝ Js JS 類庫目錄(建議)
┃ ┝ Images 公共圖像目錄(建議)
┃ ┗ Uploads 公共上傳目錄(建議)php
ThinkPHP 框架除了模板目錄和網站入口文件必須放到 WEB 目錄下以外,其它全部框架的文件和目錄能夠單獨存放,不受限制,您須要作的僅僅是在首頁文件中指定ThinkPHP 框架的包含目錄,咱們建議您若是可能的話把 ThinkPHP 框架的目錄包放到其它網站不能訪問的目錄下面,以保障應用的安全性。項目獨立目錄,方便部署和團隊開發。每一個項目有自身的配置文件、語言文件、插件文件和日誌文件。若是在類Linux 環境下面部署,須要對如下目錄設置可寫權限(這些目錄僅僅針對項目目錄,系統目錄無需設置任何可寫權限,由於每一個項目的模版緩存和數據緩存,以及日誌文件都是獨立的)。項目目錄下面的 Cache(模版緩存目錄)、Temp(數據緩存目錄)、Conf(項目配置目錄,寫入權限用於自動生成配置緩存和插件緩存文件)、 Logs(日誌文件目錄)、若是設置了 Uploads 上傳目錄和 Data 數據目錄的話也必須設置爲可寫。
另外,若是設置了 Public 目錄下面的 Uploads 目錄做爲公共上傳目錄,也須要設置可寫權限。一般的設置都是設置目錄屬性爲 777。 必定要注意在 Linux 環境下面的文件大小寫問題,不然會致使文件加載錯誤。thinkphp
TP中有很多路徑的便捷使用方法,好比模板中使用的__URL__,__ACTION__等,若是你對這些路徑不是很明白,用起來講不定就會有這樣或那樣的問題,抑或出了錯也不知道怎麼改,如今咱們看一下這些路徑究竟是表明了什麼吧!
假如你項目首頁的URL是:www.test.com/other/Form
假如當前模塊是:Index
假如當前操做是:index
那麼首頁完整的URL:http://www.test.com/other/Form/index.php/Index/index
__ROOT__:/other/thinkphp/mydemo
__SELF__:/other/thinkphp/mydemo/Form/index.php
__ACTION__: /other/thinkphp/mydemo/Form/index.php/Index/index
__URL__: /other/thinkphp/mydemo/Form/index.php/Index
__APP__: /other/thinkphp/mydemo/Form/index.php
__PUBLIC__:/other/thinkphp/mydemo/Public
../public(不區分大小寫):/other/thinkphp/mydemo/Form/Tpl/default/Public
APP_PUBLIC_URL:/other/thinkphp/mydemo/Form/Tpl/default/Public
WEB_PUBLIC_URL:/other/thinkphp/mydemo/Public
模板中對路徑部分的操做是這樣子的:瀏覽器
PHP代碼緩存
1. //項目公共目錄 安全
2. $tmplContent = str_ireplace('../public',APP_PUBLIC_URL,$tmplContent); 框架
3. //網站公共目錄 網站
4. $tmplContent = str_replace('__PUBLIC__',WEB_PUBLIC_URL,$tmplContent); spa
5. //網站根目錄 插件
6. $tmplContent = str_replace('__ROOT__',__ROOT__,$tmplContent); 日誌
7. //當前項目地址
8. $tmplContent = str_replace('__APP__',__APP__,$tmplContent);
9. //當前模塊地址
10. $tmplContent = str_replace('__URL__',__URL__,$tmplContent);
11. //當前項目操做地址
12. $tmplContent = str_replace('__ACTION__',__ACTION__,$tmplContent);
13. //當前頁面操做地址
14. $tmplContent = str_replace('__SELF__',__SELF__,$tmplContent);
<!----------------------------------------------------------------------------------------------------------------->
THINK_PATH // ThinkPHP 系統目錄
APP_PATH // 當前項目目錄
APP_NAME // 當前項目名稱
MODULE_NAME //當前模塊名稱
ACTION_NAME // 當前操做名稱
TMPL_PATH // 項目模版目錄
LIB_PATH // 項目類庫目錄
CACHE_PATH // 項目模版緩存目錄
CONFIG_PATH //項目配置文件目錄
LOG_PATH // 項目日誌文件目錄
LANG_PATH // 項目語言文件目錄
TEMP_PATH //項目臨時文件目錄
PLUGIN_PATH // 項目插件文件目錄
VENDOR_PATH // 第三方類庫目錄
DATA_PATH // 項目數據文件目錄
IS_APACHE // 是否屬於 Apache
IS_IIS //是否屬於 IIS
IS_WIN //是否屬於Windows 環境
IS_LINUX //是否屬於 Linux 環境
IS_FREEBSD //是否屬於 FreeBsd 環境
NOW_TIME // 當前時間戳
MEMORY_LIMIT_ON // 是否有內存使用限制
OUTPUT_GZIP_ON // 是否開啓輸出壓縮
MAGIC_QUOTES_GPC // MAGIC_QUOTES_GPC
THINK_VERSION //ThinkPHP 版本號
LANG_SET // 瀏覽器語言
TEMPLATE_NAME //當前模版名稱
TEMPLATE_PATH //當前模版路徑
__ROOT__ // 網站根目錄地址
__APP__ // 當前項目(入口文件)地址
__URL__ // 當前模塊地址
__ACTION__ // 當前操做地址
__SELF__ // 當前 URL 地址
TMPL_FILE_NAME //當前操做的默認模版名(含路徑)
WEB_PUBLIC_URL //網站公共目錄
APP_PUBLIC_URL //項目公共模版目錄
模板中使用的系統常量
__ROOT__ // 網站根目錄地址
__APP__ // 當前項目(入口文件)地址
__URL__ // 當前模塊地址
__ACTION__ // 當前操做地址
__SELF__ // 當前 URL 地址
__PUBLIC__ // 網站公共目錄
../Public(不區分大小寫) // 項目公共模版目錄