┎━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 公共上传目录(建议)
ThinkPHP 框架除了模板目录和网站入口文件必须放到 WEB 目录下之外,其它所有框架的文件和目录可以单独存放,不受限制,您需要做的仅仅是在首页文件中指定ThinkPHP 框架的包含目录,我们建议您如果可能的话把 ThinkPHP 框架的目录包放到其它网站不能访问的目录下面,以保障应用的安全性。项目独立目录,方便部署和团队开发。每个项目有自身的配置文件、语言文件、插件文件和日志文件。如果在类Linux 环境下面部署,需要对以下目录设置可写权限(这些目录仅仅针对项目目录,系统目录无需设置任何可写权限,因为每个项目的模版缓存和数据缓存,以及日志文件都是独立的)。项目目录下面的 Cache(模版缓存目录)、Temp(数据缓存目录)、Conf(项目配置目录,写入权限用于自动生成配置缓存和插件缓存文件)、 Logs(日志文件目录)、如果设置了 Uploads 上传目录和 Data 数据目录的话也必须设置为可写。
另外,如果设置了 Public 目录下面的 Uploads 目录作为公共上传目录,也需要设置可写权限。通常的设置都是设置目录属性为 777。一定要注意在 Linux 环境下面的文件大小写问题,否则会导致文件加载错误。
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);
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(不区分大小写) // 项目公共模版目录