项目目录结构
├─index.php 项目入口文件
├─Common 项目公共文件目录
├─Conf 项目配置目录
├─Lang 项目语言目录
├─Lib 项目类库目录
│ ├─Action Action类库目录
│ ├─Behavior 行为类库目录
│ ├─Model 模型类库目录
│ └─Widget Widget类库目录
├─Runtime 项目运行时目录
│ ├─Cache 模板缓存目录
│ ├─Data 数据缓存目录
│ ├─Logs 日志文件目录
│ └─Temp 临时缓存目录
└─Tpl 项目模板目录
一. index.php入口文件:
<?php define('APP_DEBUG',TRUE); // 开启调试模式 require '/ThinkPHP框架所在目录/ThinkPHP.php';
二. controller层:
例如:Lib/Action/IndexAction.class.php
<?php class IndexAction extends Action { public function index(){ echo 'hello,world!'; } }
三. URL请求
ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式。
普通模式:
也就是传统的GET传参方式来指定当前访问的模块和操作,例如:
http://localhost/app/?m=module&a=action&var=value
m参数表示模块,a操作表示操作(模块和操作的URL参数名称是可以配置的),后面的表示其他GET参数。
PATHINFO模式:
是系统的默认URL模式,提供了最好的SEO支持,系统内部已经做了环境的兼容处理,所以能够支持大多数的主机环境。对应上面的URL模式,PATHINFO模式下面的URL访问地址是:
http://localhost/app/index.php/module/action/var/value/
PATHINFO地址的第一个参数表示模块,第二个参数表示操作。
PATHINFO模式下面,URL是可定制的,例如,通过下面的配置:'URL_PATHINFO_DEPR'=>'-', // 更改PATHINFO参数分隔符
我们还可以支持下面的URL访问:http://localhost/app/index.php/module-action-var-value/
REWRITE模式:
是在PATHINFO模式的基础上添加了重写规则的支持,可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则。
如果是Apache则需要在入口文件的同级添加.htaccess文件,内容如下:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>
接下来,就可以用下面的URL地址访问了:http://localhost/app/module/action/var/value/
兼容模式:
是用于不支持PATHINFO的特殊环境,URL地址是:
http://localhost/app/?s=/module/action/var/value/
兼容模式配合Web服务器重写规则的定义,可以达到和REWRITE模式一样的URL效果。
四、视图
Tpl/模块名/操作名.html,例如:Tpl/Index/index.html
<html> <head> <title>hello {$name}</title> </head> <body> hello, {$name}! </body> </html>
class IndexAction extends Action { public function index(){ $this->name = 'thinkphp'; // 进行模板变量赋值 $this->display(); } }