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

此时通过 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 :

复制代码

复制代码

复制代码

复制代码

目录结构:

 

项目的部署方式

项目的部署方式分为应用部署和模块分组部署。应用部署是每一个项目对应一个入口文件,例如前台入口文件对应 index.php,后台入口文件对应 admin.php

前台入口文件 index.php:

复制代码

复制代码

define('THINK_PATH','./ThinkPHP/');
define('APP_NAME','home');
define('APP_PATH','./home/');
require(THINK_PATH."ThinkPHP.php");

复制代码

复制代码

后台入口文件 admin.php:

复制代码

复制代码

复制代码

复制代码

 

模块分组方式是所有应用对应一个入口文件,[ 使用模块分组可以简化为一个项目目录。项目的模板文件还是放到项目的 Tpl 目录下面,只是将外部调用的资源文件, 包括图片 JS 和 CSS 统一放到网站的公共目录Public 下面,分 Images、Js 和 Css 子目录存放,如果有可能的话,甚至也可以把这些资源文件单独放一个外部的服务器远程调用,并进行优化。( 事实上,系统目录和项目目录可以放到非WEB访问目录下面,网站目录下面只需要放置 Public 公共目录和入口文件,从而提高网站的安全性。) 来源:ThinkPHP 官方文档 ]

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

在 WEB 根目录创建项目目录 App,并且拷贝框架包 ThinkPHP 至同级目录,同时在同级创建所有项目公共资源目录 Public、所有项目公共上传目录 Uploads 以及入口文件 index.php:

index.php:

复制代码

复制代码

复制代码

复制代码

 

通过 url 访问 index.php ,初始化项目环境后,App 目录下自动生成的目录:

然后在App/Conf/config.php 配置文件中,配置分组选项:

复制代码

复制代码

'配置值'
    '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 官方推荐的方式;

模块分组方式各模块之间可以方便调用,公共资源也能够彼此利用,比较适合较大容量的项目。


 

 

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/6934292.html,如需转载请自行联系原作者

相关文章
|
4月前
|
JSON Android开发 数据格式
Android项目架构设计问题之在远端动态配置中添加相应配置如何解决
Android项目架构设计问题之在远端动态配置中添加相应配置如何解决
30 0
|
4月前
|
边缘计算 运维 Kubernetes
在K8S中,常见部署K8S方式有哪些?
在K8S中,常见部署K8S方式有哪些?
|
6月前
|
运维 JavaScript Serverless
Serverless 应用引擎产品使用合集之php工程已经部署,可以正常访问数据库,静态资源样式无法正常加载,要怎么配置
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
Serverless 应用引擎产品使用合集之php工程已经部署,可以正常访问数据库,静态资源样式无法正常加载,要怎么配置
|
5月前
|
前端开发
若依部署,部署常见流程之先部署网页的后端系统,让自己的前端能够看到内容,先部署后端,让前端在本地跑起来-----吃饱了撑死了大佬建议,正确的部署流程
若依部署,部署常见流程之先部署网页的后端系统,让自己的前端能够看到内容,先部署后端,让前端在本地跑起来-----吃饱了撑死了大佬建议,正确的部署流程
|
6月前
|
NoSQL Java 关系型数据库
若依后端项目如何进行部署
若依后端项目如何进行部署
|
6月前
|
NoSQL Java Redis
若依如何使用(基本环境的配置)
若依如何使用(基本环境的配置)
|
7月前
|
前端开发 安全 开发工具
前端场景的代码部署方式都有那些?
【4月更文挑战第17天】本文分析了四种常见的前端代码部署方式:FTP/SFTP、Git、Docker和云服务平台部署。FTP/SFTP简单易用但效率低;Git提供版本控制,适合自动化部署,但有学习成本;Docker确保环境一致性,高效扩展,但较复杂;云服务平台弹性伸缩,高可用,但可能产生依赖和成本。选择部署方式应综合考虑项目需求、技术能力和成本。
191 0
|
7月前
|
前端开发 JavaScript 应用服务中间件
部署前端项目到服务器过程详解
部署前端项目到服务器过程详解
306 0
|
JavaScript 前端开发
DjangoVue前后分离_前端项目的准备(搭建博客第一步)
DjangoVue前后分离_前端项目的准备(搭建博客第一步)
70 0
|
前端开发 开发者 微服务
搭建项目前端页面环境 | 学习笔记
快速学习搭建项目前端页面环境
搭建项目前端页面环境 | 学习笔记