ThinkPHP 学习笔记 ( 一 ) 项目部署:应用部署方式与模块分组部署方式
2017-06-02 17:16
736 查看
/** * ThinkPHP version 3.1.3 */
ThinkPHP ( 官方网站:http://www.thinkphp.cn/ ) 目前最新版本是 3.2.2,它要求 PHP 的版本高于 5.3.0,由于我的 WAMPServer 集成的 PHP 版本是 5.2.6,所以下载了低一版本的 ThinkPHP ( 3.1.3 ) 来学习。
下载的 ThinkPHP 的框架包解压后的结构是:
├─ThinkPHP.php 框架入口文件 ├─Common 框架公共文件 ├─Conf 框架配置文件 ├─Extend 框架扩展目录 ├─Lang 核心语言包目录 ├─Lib 核心类库目录 │ ├─Behavior 核心行为类库 │ ├─Core 核心基类库 │ ├─Driver 内置驱动 │ │ ├─Cache 内置缓存驱动 │ │ ├─Db 内置数据库驱动 │ │ ├─TagLib 内置标签驱动 │ │ └─Template 内置模板引擎驱动 │ └─Template 内置模板引擎 └─Tpl 系统模板目录
在 WEB 根目录下创建项目目录 app,把框架包放至 app 目录下,然后在 app 目录下创建入口文件 index.php。
配置入口文件 index.php
<?php define('THINK_PATH','./ThinkPHP/'); require(THINK_PATH."ThinkPHP.php");
此时通过 url 访问 index.php 文件,页面显示:
此时项目目录 APP 下内容页发生了变化,除了入口文件 index.php 和框架包,其他都是自动生成的:
每个文件夹的作用分别是:
├─index.php 项目入口文件 ├─Common 项目公共文件目录 ├─Conf 项目配置目录 ├─Lang 项目语言目录 ├─Lib 项目类库目录 │ ├─Action Action类库目录 │ ├─Behavior 行为类库目录 │ ├─Model 模型类库目录 │ └─Widget Widget类库目录 ├─Runtime 项目运行时目录 │ ├─Cache 模板缓存目录 │ ├─Data 数据缓存目录 │ ├─Logs 日志文件目录 │ └─Temp 临时缓存目录 └─Tpl 项目模板目录
这种方式的入口文件 index.php 是存在项目目录之内。也可以入口文件移动到 app 目录的外面,修改入口文件 index.php :
<?php define('THINK_PATH','./app/ThinkPHP/'); define('APP_NAME','app'); define('APP_PATH','./app/'); require(THINK_PATH."ThinkPHP.php");
目录结构:
项目的部署方式
项目的部署方式分为应用部署和模块分组部署。应用部署是每一个项目对应一个入口文件,例如前台入口文件对应 index.php,后台入口文件对应 admin.php
前台入口文件 index.php:
<?php define('THINK_PATH','./ThinkPHP/'); define('APP_NAME','home'); define('APP_PATH','./home/'); require(THINK_PATH."ThinkPHP.php");
后台入口文件 admin.php:
<?php define('THINK_PATH','./ThinkPHP/'); define('APP_NAME','admin'); define('APP_PATH','./admin/'); require(THINK_PATH."ThinkPHP.php");
模块分组方式是所有应用对应一个入口文件,[ 使用模块分组可以简化为一个项目目录。项目的模板文件还是放到项目的 Tpl 目录下面,只是将外部调用的资源文件, 包括图片 JS 和 CSS 统一放到网站的公共目录Public 下面,分 Images、Js 和 Css 子目录存放,如果有可能的话,甚至也可以把这些资源文件单独放一个外部的服务器远程调用,并进行优化。( 事实上,系统目录和项目目录可以放到非WEB访问目录下面,网站目录下面只需要放置 Public 公共目录和入口文件,从而提高网站的安全性。) 来源:ThinkPHP 官方文档 ]
( 图片来源:http://www.php400.cn/275.html )
模块分组方式需要配置 APP_NAME 和 APP_PATH 。
在 WEB 根目录创建项目目录 App,并且拷贝框架包 ThinkPHP 至同级目录,同时在同级创建所有项目公共资源目录 Public、所有项目公共上传目录 Uploads 以及入口文件 index.php:
index.php:
<?php define('THINK_PATH','./ThinkPHP/'); //定义项目名称和路径 define('APP_NAME','Myapp'); define('APP_PATH','./App/'); define('APP_DEBUG',true); //加载框架入口文件 require(THINK_PATH."ThinkPHP.php");
通过 url 访问 index.php ,初始化项目环境后,App 目录下自动生成的目录:
然后在App/Conf/config.php 配置文件中,配置分组选项:
<?php return array( //'配置项'=>'配置值' 'APP_GROUP_LIST'=>'Admin,Home', 'DEFAULT_GROUP'=>'Home', ); ?>
如果此时访问 index.php 入口文件,ThinkPHP 会报错:
因为在公共配置文件中开启了模块分组,但相应的分组目录并没有创建,需要手动创建 Admin 和 Home 组的各自配置文件:Conf 目录下创建 Admin 和 Home 目录,然后分别在目录中创建 config.php 配置文件;App/Lib/Action 目录也需要创建 Admin 和 Home 目录,然后将默认创建的 IndexAction.class.php 文件移动到 App/Lib/Action/Home 目录,此时访问入口文件不会报错,项目部署成功:
总结:传统的模式适合耦合度不高的项目,也是 ThinkPHP 官方推荐的方式;
模块分组方式各模块之间可以方便调用,公共资源也能够彼此利用,比较适合较大容量的项目。
参考资料:ThinkPHP 官方教程、ThinkPHP 官方文档、http://www.php400.cn/category/thinkphp%E6%A1%86%E6%9E%B6、《PHP MVC开发实战》
相关文章推荐
- Thinkphp学习笔记之---Thinkphp一个站点多个项目部署
- Android项目学习笔记之如何将应用部署到真机上
- SAP PS 项目模块 PA学习笔记——PLM200
- 浪潮优派培训笔记:Tomcat中部署JavaEE项目的两种方式
- 微软企业库4.1学习笔记(三十七)日志模块 在应用中使用日志模块
- EBS R12 PM模块----FORM项目应用与学习
- ThinkPHP应用分组部署与访问
- 微软企业库5.0学习笔记(三十四)数据访问模块 各种获取数据的方式
- 微软企业库5.0学习笔记(三十四)数据访问模块 各种获取数据的方式
- ThinkPHP笔记——URL结构与模块分组
- Thinkphp学习笔记(三)输入方式和连接数据库的方式
- 《汇编语言(王爽)》(第八章、实验7寻址方式在结构化数据访问中的应用)学习笔记
- play framework学习笔记之 部署项目
- [BizTalk][Adapter][部署]BTS学习笔记1:建立一个简单的Biztalk数据交换项目(一)
- 微软企业库4.1学习笔记(二十二)加解密模块2 在应用中使用加密解密
- SAP PS 项目模块 PA学习笔记——PLM200
- 微软企业库4.1学习笔记(三十七)日志模块 在应用中使用日志模块
- VSTO 学习笔记(十三)谈谈VSTO项目的部署
- Maven多模块项目中应用maven-tomcat-plugin热部署
- 微软企业库4.1学习笔记(三十七)日志模块 在应用中使用日志模块