码迷,mamicode.com
首页 > 其他好文 > 详细

20150314--TP-02

时间:2016-05-07 23:37:24      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:

1、 url调度模式

url的调度模式就是url的访问方式

ThinkPHP支持四种URL模式,可以通过设置URL_MODEL参数来定义

这个配置选项的值共有四个

0   :普通模式

1 :pathinfo模式(默认)

2 :rewrite模式

3 :兼容模式

1) 普通模式

技术分享

语法:

http://项目/入口文件?m=模块名&a=动作名

运行:

技术分享

2) pathinfo模式

技术分享

语法:

http://项目/入口文件/模块名/动作名

运行:

技术分享

在项目的配置文件中,可以修改以下选项修改路径分隔符

URL_PATHINFO_DEPR

技术分享

访问时:

技术分享

3) rewrite模式

(1) 修改config.php配置选项

技术分享

(2) httpd.conf配置文件中加载了mod_rewrite.so模块

技术分享

(3)AllowOverride None 将None改为 All

技术分享

(4)把下面的内容保存为.htaccess文件放到入口文件的同级目录下

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

</IfModule>

语法:

http://项目/模块名/动作名

运行:

技术分享

4) 兼容模式

技术分享

语法:

http://项目/入口文件?s=/模块名/动作名

运行:

技术分享

2、 空操作

空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。

语法:

public function _empty($name){

}

1) 错误页面的定制

技术分享

访问时:

技术分享

2) 优化url

技术分享

访问:

技术分享

我们访问时,由于没有shanghai方法,所以会自动定位到_empty方法中,并将shanghai做为参数传递给$name。

3、 空模块

空模块的概念是指当系统找不到指定的模块名称的时候,系统会尝试定位空模块(EmptyAction),利用这个机制我们可以用来定制错误页面和进行URL的优化。

语法:

class EmptyAction extends Action{

}

MODULE_NAME:请求的当前模块名称

1) 错误页面的订制

技术分享

运行:

技术分享

系统找不到abc控制器,所以会自动定位到EmptyAction中。

2) 优化url

技术分享

运行:

技术分享

4、 项目分组

一般网站项目是由若干个小项目构成的,如:前台、后台、会员、博客等

配置文件config.php中有两个选项,用于配置项目的分组

l APP_GROUP_LIST :分组列表

l DEFAULT_GROUP :默认组名

1) 修改配置文件

技术分享

2) 创建分组控制器目录

技术分享

3) 运行

技术分享

4) 对模板进行分组

技术分享

5、 url大小写

TP中的url严格区分大小写,如果想不区分大小写,可以修改以下选项:

配置文件:config.php

l ‘URL_CASE_INSENSITIVE’=>true

技术分享

运行:

技术分享

6、 页面跳转

在需要对用户的操作信息进行提示时,可以使用以下两个方法:

l success :操作成功时所调用的方法

l error   :操作失败时所调用的方法

配置文件:config.php

l TMPL_ACTION_SUCCESS :success方法对应的模板

l TMPL_ACTION_ERROR :error方法对应的模板

代码:

技术分享

运行:

技术分享

配置文件中:

技术分享

可以修改以上选项,实现自定义模板

7、 页面重定向

如果想实现页面的重定向,可以使用以下方法:

redirect

语法:

$this->redirect(“news/show”, array(‘id’=>2),  5, “页面跳转中” );

参数1:跳转地址

参数2:参数数组

参数3:停留时间

参数4:提示信息

技术分享

一、 视图

1、 什么是视图

用户看到的并与之交互的界面

在tp中,视图主要包含两部份:

1) 视图类

2) 模板

2、 模板定义

默认的模板文件定义规则:

模板目录/[分组名/]模块名/操作名+模板后缀

TMPL_TEMPLATE_SUFFIX :模板后缀名

技术分享

技术分享

3、 分隔符

l ‘TMPL_L_DELIM‘=>‘<{‘, :模板左分界符  默认:{

l ‘TMPL_R_DELIM‘=>‘}>‘, :模板右分界符 默认:}

技术分享

4、 模板赋值与输出

模板赋值:

$this->assign(‘模板变量名’,’值’);

模板输出:

$this->display(‘模板名’);

技术分享

5、 模板字符串替换

在tp的模板中,默认有一些字符串表示一些路径

l __PUBLIC__:当前网站的公共目录

l __APP__: 当前项目的URL地址

l __GROUP__:当前分组的URL地址

l __URL__: 当前模块的URL地址

l __ACTION__:当前操作的URL地址

l TMPL_PARSE_STRING :可以在配置文件中配置此选项,用于一些常用路径的定义

Tmpl_parse_string

模板文件:

技术分享

运行:

技术分享

配置文件:

技术分享

模板文件:

技术分享

6、 获取内容

l $this->fetch();

fetch :获取内容,返回字符串

display :输出字符串

技术分享

20150314--TP-02

标签:

原文地址:http://www.cnblogs.com/lifushan/p/5469471.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!