学习要点:
1.获取 ThinkPHP
2.入口文件
3.自动生成
4.访问控制器
ThinkPHP 是一款免费开源的框架,基于 MVC 设计模式和面向对象开发。
一. 获取 ThinkPHP
我们直接登录 ThinkPHP 的官网下载频道:http://www.thinkphp.cn/down.html,选择最新
的 ThinkPHP3.2.1 正式完整版即可。
由于最新版本采用了命名空间等新特性,所以框架对于 PHP 版本的最低要求是 5.3+。
其他需求一般都支持,我们直接使用 wamp 即可满足所有要求。
解压 ThinkPHP3.2.1,打开它或导入到项目中去,展开六个文件及文件夹:
Application --应用程序目录,当程序开发时自动生成,默认为空;
Public --公共资源文件目录,存放一些公用的文件,默认为空;
ThinkPHP --框架目录,框架的核心架构程序包;
README.md --说明文件,可删;
.htaccess --配置文件,一般用于配置伪静态;
Index.php --入口文件,所有程序都通过这里访问。
对于 ThinkPHP 框架目录内,也含有大量的目录及文件:
Common --核心公共函数目录
Conf --核心配置目录
Lang --核心语言包目录
Library --框架类库目录
|--Think --核心 Think 类库包目录
|--Behavior --行为类库目录
|--Org --Org 类库包目录
|--Vendor --第三方类库目录
|--... --更多类库目录
Mode --框架应用模式目录
Tpl --系统模版目录
LICENSE.txt --框架授权协议文件
logo.png --框架 LOGO 文件
README.txt --框架 README 文件
index.php --框架入口文件
二. 入口文件
ThinkPHP 采用单一入口模式对项目进行部署和访问的,所以我们需要通过 index.php
进行一些部署工作,保证其正确访问。
1.将完整版压缩包解压的内容,拷贝到指定的服务器文件夹内,比如 demo39;
2.打开 ThinkPHP 提供的 index.php 文件,我们发现如下代码:
//检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP >
5.3.0 !');
//开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG', True);
//定义应用目录
define('APP_PATH','./Application/');
//引入ThinkPHP入口文件
e require './ThinkPHP/ThinkPHP.php';
3.如果想按照自己的意愿设置应用目录名称,可以修改成这样:
//修改应用目录
define('APP_PATH','./Weibo/');
//修改框架目录
e require './Think/ThinkPHP.php';
当第一次运行了这个配置后的应用程序,将会在根目录生成一个 Weibo 文件夹,应用
程序的所有文件将全部存放在这里。
三. 自动生成
当第一次访问应用入口文件的时候,会自动生成 Weibo 这个应用程序目录。里面包含
了各种目录,说明如下:
Common --应用公共模块
|--Common --应用公共函数目录
|--Conf --应用公共配置文件目录
Home --默认生成的 Home 模块
|--Conf --模块配置文件目录
|--Common --模块函数公共目录
|--Controller --模块控制器目录
|--Model --模块模型目录
|--View --模块视图文件目录
Runtime --运行时目录
|--Cache --模版缓存目录
|--Data --数据目录
|--Logs --日志目录
|--Temp --缓存目录
index.php 只有一个入口,就是应用程序入口。如果有多个站,或者后台,那就需要另
一个入口。
创建一个 admin.php,应用目录改成对应的即可。
//修改应用目录
define('APP_PATH','./Admin/');
在自动生成的目录中,为了防止访问到应用程序的目录结构,会创建个index.html文
件。当然,你也可以自行设置。
//设定目录生成的文件
define('DIR_SECURE_FILENAME', 'default.html');
//设置目录页面内容
define('DIR_SECURE_CONTENT', '目录禁止');
一般来说,第一次生成应用程序,应该加上静态主页防止目录结构暴露。但如果你的环
境非常安全,可以关闭生成静态主页。
//禁止目录主页生成
define('BUILD_DIR_SECURE', false);
四. 访问控制器
控制器路径在:Weibo/Home/Controller 下,有一个默认的控制器 IndexController.class.php
文件。
控制器类的命名方式:控制器名(驼峰式,首字母大写)+Controller
控制器文件的命名方式:类名+class.php
创建一个控制器需要三个部分:1.设置命名空间;2.导入命名空间;3.控制器类
//设置命名空间
e namespace Home\Controller; //设置命名空间,就是当前目录
//导入命名空间
e use Think\Controller; //继承父类用到Controller类
//控制器类
s class IndexController s extends Controller {
c public n function index() {
//...
}
}
除了首页直接访问:http://localhost/demo39/,如果想用完整形式则是:
http://localhost/demo39/index.php/Home/Index/index。
在这里的完整URL中,index.php是单一入口文件,Home是主模块,Index是控制器名,
index是控制器里的一个方法。注意:这里大小写区分,因为在Linux是区分大小写的。
如果创建一个test()方法,那么URL就是:
http://localhost/demo39/index.php/Home/Index/test
如果想创建一个User模块,那么可以创建一个User控制器。
e namespace Home\Controller;
e use Think\Controller;
s class UserController s extends Controller {
c public n function index() {
o echo 'user';
}
}
URL访问路径为:http://localhost/demo39/index.php/Home/User/index