通过二十多天的学习,在老师的讲解和指导下我们已大致学会了THINKPHP3,我了解到ThinkPHP是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架。3.2版本在原来的基础上进行一些架构的调整,引入了命名空间支持和模块化的完善,为大型应用和模块化开发提供了更多的便利。下面我来写一下我的总结。
ThinkPHP提供了灵活的全局配置功能,有些简单的应用,无需配置任何配置文件,对于复杂的要求,可以增加动态配置文件,避免了代码的重复,提高了效率。THINKPHP3.2版本采用命名空间定义和加载类库文件,可以有效的解决多个模块之间的冲突问题,而且在3.2版本中,无需手动加载类库文件,可以非常方便的完成自动加载。路由功能是针对模块设置的,所以路由定义通常放在公共配置文件中。
在TP3中讲述了CURD的数据操作,它代表创建(Create)、更新(Update)、读取(Read)和删除(Delete)操作,CURD在具体的应用中并非一定使用create、update 、read和delete字样的方法,ThinkPHP就是使用add、save、select和delete方法表示模型的CURD操作。ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作,查询条件可以用于读取、更新和删除等操作,查询语言是ThinkPHP框架的ORM亮点,使用传统方式来查询危险性比较高,可以使用数组来作为查询条件,这也是最常用的方式。TP3也提供了连贯操作,可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作,除了select()必须放到最后以外没有顺序要求。在获取变量方面,TP提供了I()函数,更加方便和安全的获取系统输入变量,例如:I('get.id')就相当于 $_GET['id']。
为了方便查看视图文件,我们可以在入口文件中添加define('TMPL_PATH','./Template/');来改变所有模块的模板目录。循环输出主要有两种方式:volist和foreach。volist标签通常用于select方法的结果输出,通常select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出;相对来说,foreach就比较简单,属性比较少。
在TP3中可以使用公共模板,用法:<include file='模版表达式或者模版文件1' />,可以一次调用多个模板。THINKPHP的控制器有两大实用特性:空操作(_empty)和空控制器,空操作是指系统在找不到请求的操作方法的时候,会定位到当前控制器的空操作方法来执行。系统的 Think\Controller 类内置了两个页面跳转方法error和success,分别用于错误跳转和成功跳转。两个方法都会输出一个提示信息页面,然后自动跳转到指定的地址。两者都有三个参数,分别是提示信息、跳转地址和跳转页面等待时间,除了第一个参数外其他都是可选的。
在很多情况下面,我们需要判断当前操作的请求类型是GET 、POST 等,一方面可以针对请求类型作出不同的逻辑处理,另外一方面有些情况下面需要验证安全性,过滤不安全的请求。系统内置了一些常量用于判断请求类型,包括:get方式,post方式,ajax方式,put方式等。TP可以很好的支持AJAX请求,系统的 \Think\Controller 类提供了 ajaxReturn 方法用于AJAX调用后返回数据给客户端。
由于学习的时间不久,所以我欠缺的还很多,知识面还比较狭窄,如有错误或补充请指出,谢谢!