tp3.2与tp5.0的区别,tp5和tp5.1

  tp3.2与tp5.0的区别,tp5和tp5.1

  首先声明,本章不是指导老项目升级到5.0,而是帮助使用3版的开发者。x更快地熟悉这个全新的版本。同时强烈建议开发者抛弃旧的思维模式,因为5.0是一个全新版本的颠覆和重构。

  3.需要摒弃的旧观念

  URL的更改

  首先对3.x的不精确给开发者带来的不正确引导表示歉意,在5.0版本中,正式废除了通过 get 获取 ID 的方法。严格来说,这样的url不属于$_GET,现在可以通过‘param’获得。具体用途可以通过请求部分查询。

  型号变更

  新版本的模型查询返回默认的“object ”,系统默认添加“toArray”方法。许多开发人员试图在“all”或“select”中使用“toArray”将其转换为数组。在此,希望开发者能够理解对象的概念,尽量对数据使用对象,或者对数据库操作使用 db 方法,并提醒一些过度使用

  新版变更

  命名规范

  目录和文件名带有“小写下划线”并以小写字母开头;类库和函数文件都统一以。php类的文件名都由命名空间定义,命名空间的路径与类库文件的路径一致(包括大小写);类名与类文件名一致,采用驼峰法命名(首字母大写)。

  系统不依赖任何函数,只提供常用操作封装的辅助函数。单字母函数被放弃,默认情况下加载辅助函数。详情请参考上一章“辅助功能”。

  5.0的URL访问不再支持常见的URL模式,路由也不支持常规路由定义,而是全部改为常规路由匹配变量规则(常规定义)的方式,此处不赘述。

  控制器

  控制器的命名空间已经调整,不需要继承任何控制器类。

  应用类库的命名空间统一为app(可修改)而不是模块名;控制器的类名默认没有控制器后缀,可以配置controller_suffix参数启用控制器类后缀;控制器的操作方法使用返回模式返回数据,而不是直接输出;废除原来的前后操作法;

  版本比较

  3.2版本控制器编写

  ?服务器端编程语言(Professional Hypertext Preprocessor的缩写)

  命名空间Home Controller使用思考控制器;class IndexController扩展控制器{ public function hello(){ echo hello,thinkphp!;} }

  5.0版控制器编写方法

  命名空间app index controller

  class Index { public function Index(){ return hello,thinkphp!;} }

  3.2版控制器命名

  IndexController.class.php

  5.0版控制器命名

  Index.php

  * *控制器中的正确输出模板* *

  5.0在控制器中输出模板。使用方法如下:

  如果您继承了thinkController,您可以使用:

  返回$ this-fetch( index/hello );

  如果您的控制器没有继承thinkController,请使用:

  返回视图(索引/hello );

  如果一定要对比老版本的改进,模型分为数据库、模型和验证器三个部分,分别对应M方法、模型和自动验证,三者同时加强。下面简单介绍一下。

  资料库

  增强了5.0的数据库查询功能。原本需要通过模型使用的链式查询,可以通过db类直接调用,原来的M函数调用可以改为Db函数,例如:

  版本3.2

  m( User )-where([ name = thinkphp ])-find();

  版本5.0

  db(User)- where(name , thinkphp )-find();

  新版本的模型查询添加了静态方法,例如:

  user:get(1);user:all();User:where(id , ,10)-find();

  模型部分增强了很多功能,详情请参考“模型章节”。

  自动证明

  与旧版本相比,可以理解为之前的自动验证,与之前的验证不同;

  ThinkPHP5.0验证使用独立的thinkValidate类或验证器进行验证,不仅适用于模型,还可以在控制器中直接调用。具体使用规则请参考“验证”章节,此处不再赘述。

  配置文件

  新版本的许多配置参数或配置级别与以前不同。建议你要么看代码,要么仔细通读官方开发手册,不要因为配置问题浪费一整天。

  5.0对错误零容忍。默认情况下,任何级别的错误都会引发异常,异常页面已经过重新设计,可以显示详细的错误信息,以便于调试。

  放弃系统常数

  相比之前的版本,5.0版本摒弃了大量的系统改动,用户如有相关需求可自行定义。

  以下是常数的废除。

  request _ method is _ get is _ post is _ put is _ delete is _ Ajax _ _ ext _ _ common _ module module _ name controller _ name action _ name app _ namespace app _ debug module _ path等。

  有些常数可以索取。详情请参考“请求章节”。

  注意:同样,这一章只为使用版本3的开发人员编写。x之前要快速了解5.0,5.0的具体功能需要开发者通读手册。

  辅助功能

  5.0 helper函数和3.2版本的单字母函数比较如下:

  3.2版5.0版CconfigEexceptionGdebugLlangT废止IinputN废止DmodelMdbAcontrollerRactionB废止UurlWwidgetScacheF废止

tp3.2与tp5.0的区别,tp5和tp5.1