zoukankan      html  css  js  c++  java
  • tp3.x和tp 5的区别

     由于TP5.0是一个全新的颠覆重构版本,所以现在面试很多面试官喜欢问TP3.2和TP5之间的区别,那他们之间到底有哪些区别呢?
    一、目录
     
     
    TP5目录


    二、需要摒弃的 3.X 旧思想

    模型的变动
           新版的模型查询返回默认‘对象’,系统默认增加了'toArray'方法,许多开发者在'all'或'select'尝试使用'toArray'来 转换为数组,但是'all'或'select'结果是对象的数组集合,是无法使用'toArray'进行转换的,如果你强行使用foreach进行转换,后期会增加很多操作,也会出现很多意想不到的bug。所以我们在开发的时候,要去理解‘对象’的概念,尝试使用‘对象’进行数据的使用。


    三、TP5新版的变化
    命名规范

        目录和文件名采用‘小写+下划线’,并且以小写字母开头;
        类库、函数文件统一以.php 为后缀;
        类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致(包括大小写);
        类名和类文件名保持一致,并统一采用驼峰法命名(首字母大写)

    函数

        系统已经不依赖任何函数,只是对常用的操作封装提供了助手函数;
        单字母函数废弃,默认系统加载助手函数;

    路由
            5.0 的 URL 访问不再支持普通 URL 模式,路由也不支持正则路由定义,而是全部改为规则路由配合变量规则(正则定义)的方式。
    控制器
            控制器的命名空间有所调整,并且可以无需继承任何的控制器类。

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



    控制器版本对比
    tp3
     
    tp5
     




           TP3.2控制器命名必须以Controller.class.php结尾,而TP5是以.php结尾;
           TP3.2控制器模版输出使用$this->display()方法,而在TP5中如果继承基础控制器使用$this->fetch()方法,没有继承使用view()助手函数即可;
    模型
            5.0 的数据库查询功能增强,原先需要通过模型才能使用的链式查询可以直接通过 Db 类调用,原来的 M 函数调用可以改用 db 函数,例如:
    3.2 版本
    M('User')->where(['name'=>'thinkphp'])->find();
    5.0 版本
    db('User')->where('name','thinkphp')->find();
    新版的模型查询增加了静态方法,例如:



    系统常量的废弃
             对于TP3.2,TP5废弃了很多的常量,如果开发这有需求可以自定义,有些常量的功能可以通过request()获取,其中废弃的常量有:

        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

            
    模型
           TP5支持think命令创建控制器模型,而TP3.2不支持;

    四、助手函数
     

  • 相关阅读:
    python 基础2.5 循环中continue与breake用法
    python 基础 2.4 while 循环
    python 基础 2.3 for 循环
    python 基础 2.2 if流程控制(二)
    python 基础 2.1 if 流程控制(一)
    python 基础 1.6 python 帮助信息及数据类型间相互转换
    python 基础 1.5 python数据类型(四)--字典常用方法示例
    Tornado Web 框架
    LinkCode 第k个排列
    LeetCode 46. Permutations
  • 原文地址:https://www.cnblogs.com/keta/p/9957301.html
Copyright © 2011-2022 走看看