ThinkPHP 学习之项目部署:应用部署方式与模块分组部署方式

/**
 * 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 公共目录和入口文件,从而提高网站的安全性。)

( 图片来源:http://www.php400.cn/275.html )

模块分组方式需要配置 APP_NAME 和 APP_PATH 。

 

参考资料:ThinkPHP 官方教程ThinkPHP 官方文档http://www.php400.cn/category/thinkphp%E6%A1%86%E6%9E%B6、《PHP MVC开发实战》

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。