最近的文章列表

详解ThinkPHP3.1.2版本之模板继承

模板继承是ThinkPHP3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层。模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载。

因此,模板继承的优势其实是设计基础模板中的区块(block)和子模板中替换这些区块。
每个区块由<block></block>标签组成,并且不支持block标签的嵌套。
下面就是基础模板中的一个典型的区块设计(用于设计网站标题):

2014/7/4 Comments:
详解ThinkPHP3.1.2版本之模块和操作映射

模板和操作映射功能是ThinkPHP3.1.2版本支持的对模块和操作设置的映射机制,由于可以通过改变配置动态改变(实际真正改变,并非别名)URL访问地址,加强了应用的安全性,而且,映射机制具有URL不区分大小写访问的特性,对于应用的迁移也有很大的帮助。

因为,普通情况下,如果需要更改URL的模块或者操作访问的话,需要改动的文件较多,容易导致关联性出错。尤其是很多应用需要迁移到新版本的时候,由于模型和控制器改动较多,导致URL地址出现大的调整,通过模块和操作映射功能,就可以很轻松的解决此类问题。

1.模块映射

要定义模块映射,我们只需要在配置文件中定义:

2014/7/3 Comments:
解决ThinkPHP访问不存在的模块跳转到404页面的方法(apache,IIS服务器配置)

首先在ACTION中新建一个文件EmptyAction.class.php,其代码如下:

<?php 
class EmptyAction extends Action{
function _empty(){
header("HTTP/1.0 404 Not Found");//使HTTP返回404状态码
$this->display("Public:404");
}
}
?>

使用apache服务器的情况下需在apache中的网站配置中加入 ErrorDocument 404 /404.html

2014/7/3 Comments:
ThinkPHP3.1.3版本发布的新特性概述

ThinkPHP3.1.3版本有一些特性,还是值得关注的,下面来简单说下。

1、异常方面的改进

新版的ThinkPHP3.1.3重写了异常类ThinkException(其实是完全简化成了直接继承系统Exception类),并且把异常逻辑改进封装到Think类中。主要涉及到Think类的appException方法和halt函数。
并且改进后的异常处理支持系统致命错误的捕获,Think类增加了fatalError方法,原理是使用了

register_shutdown_function(array('Think','fatalError')
2014/7/3 Comments:
ThinkPHP3.1数据CURD(增删改查)操作快速入门

1.CURD概述:

CURD是一个数据库技术中的缩写词,一般的项目开发的各种参数的基本功能都是CURD。它代表创建(Create)、更新(Update)、读取(Read)和删除(Delete)操作。CURD 定义了用于处理数据的基本原子操作。之所以将CURD提升到一个技术难题的高度是因为完成一个涉及在多个数据库系统中进行CURD操作的汇总相关的活动,其性能可能会随数据关系的变化而有非常大的差异。

CURD在具体的应用中并非一定使用create、update、read和delete字样的方法,但是他们完成的功能是一致的。例如,ThinkPHP就是使用add、save、select和delete方法表示模型的CURD操作

2014/7/2 Comments:
ThinkPHP3.1查询语言汇总详解

ThinkPHP的查询语言配合连贯操作可以很好解决复杂的业务逻辑需求,本篇我们就首先来深入了解下框架的查询语言。

1.查询语言介绍

ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作,查询条件可以用于读取、更新和删除等操作,主要涉及到where方法等连贯操作即可,无论是采用什么数据库,你几乎采用一样的查询方法(个别数据库例如Mongo在表达式查询方面会有所差异),系统帮你解决了不同数据库的差异性,因此我们把框架的这一查询方式称之为查询语言。查询语言也是ThinkPHP框架的ORM亮点,让查询操作更加简单易懂。下面来一一讲解查询语言的内涵。

2.查询方式

2014/7/2 Comments:
ThinkPHP3.1之D方法用于实例化自定义模型类实例详解

D方法应该是用的比较多的方法了,用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持跨项目和分组调用,调用格式如下:

D('[项目://][分组/]模型','模型层名称')

方法的返回值是实例化的模型对象。

D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化Model基类,同时对于已实例化过的模型,不会重复去实例化。

D方法最常用的用法就是实例化当前项目的某个自定义模型,例如:

2014/7/1 Comments:
ThinkPHP里的M方法用于实例化一个基础模型类实例详解以及和D方法的区别

M方法用于实例化一个基础模型类,和D方法的区别在于:

1、不需要自定义模型类,减少IO加载,性能较好;
2、实例化后只能调用基础模型类(默认是Model类)中的方法;
3、可以在实例化的时候指定表前缀、数据库和数据库的连接信息;
D方法的强大则体现在你封装的自定义模型类有多强,不过随着新版ThinkPHP框架的基础模型类的功能越来越强大,M方法也比D方法越来越实用了。

M方法的调用格式:

M('[基础模型名:]模型名','数据表前缀','数据库连接信息')

我们来看下M方法具体有哪些用法:

2014/7/1 Comments:
ThinkPHP里的A方法用于在内部实例化控制器实例讲解

ThinkPHP的A方法用于在内部实例化控制器,其调用格式为:

A('[项目://][分组/]模块','控制器层名称')

最简单的用法:

$User = A('User');

表示实例化当前项目的UserAction控制器(这个控制器对应的文件位于Lib/Action/UserAction.class.php),如果采用了分组模式,并且要实例化另外一个Admin分组的控制器可以用:

$User = A('Admin/User');
2014/7/1 Comments:
ThinkPHP里的import方法用于类库导入的封装实现实例详解

import方法是ThinkPHP框架用于类库导入的封装实现,尤其对于项目类库、扩展类库和第三方类库的导入支持,import方法早期的版本可以和java的import方法一样导入目录和通配符导入,后来考虑到性能问题,在后续的版本更新中不断改进和简化了,所以现在的用法比较简单明了。调用格式:

import('类库名', '起始路径', '类库后缀')

imprt方法有一个别名vendor方法,专门用于导入第三方类库,区别在于起始路径和类库后缀默认值不同。

我们来分析下具体的用法:

1.导入系统基类库

系统基类库其实就是指的Think类库包

2014/7/1 Comments: