学习要点:

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


关注极客云图了解更多内容