美文网首页
TP3.2和TP5的差别

TP3.2和TP5的差别

作者: 铁匠简记 | 来源:发表于2018-05-14 09:37 被阅读626次

    1、控制器的类名默认不带Controller后缀 模型类的后缀不再带Model
    2、 控制器输出

    return $this->fetch('index/index');
    $this->display('index/index');
    

    单字母函数去掉了 如 M( ) D( ) U( ) S( ) C( ) 基于以下原因废除了单字母函数

    1、5.0核心已经不依赖任何函数 只是对常用的的操作封装提供了助手函数并默认加载了助手函数 配置如下:
    扩展函数文件定义

     'extra_file_list' => [THINK_PATH . 'helper' .EXT],
    

    2、助手函数是可以完全自己定义和修改 并不影响其他的使用 配置如下:

    扩展函数

     'extra_file_list' => [APP_PATH . 'helper' .EXT],
    

    3、现在的IDE提示和自动完成功能非常强大,所以用不用助手函数,或者是否需要改成原来的单字母函数 全凭开发者个人意愿

    3、getField方法
    原来3.2版本的模型的getField方法应该如何使用?

    原先模型类的getField方法,在5.0的数据库Query类中拆分成两个方法,一个value方法用于查询某个行的某个值和一个column方法用于查询某个列的值,用法如下:

    //查询某个字段的值可以用
    Db::table('think_user')->where('id',1)->value('name');
    

    原先的聚合查询方法依然有效,例如:

    // 查询用户数
    Db::table('think_user')->count();
    // 查询用户的最高分
    Db::table('think_user')->max('score')
    

    查询某一列的值可以用

    // 返回数组
    Db::table('think_user')->where('status',1)->column('name');
    // 指定id字段作为索引
    Db::table('think_user')->where('status',1)->column('name','id');
    

    4、控制器不区分URL的大小写

    http://serverName/index/UserType/addType
    
    //和下面的访问是等效的
    http://serverName/index/usertype/addType
    

    如果需要访问驼峰式命名的UserType控制器,有两种方法

    1、使用下划线'_'的方式:

    http://serverName/index/user_type/addType
    

    2、配置项url_convert参数 关闭URL强制转换

    'url_convert'=>false,
    

    5、模型 3.2版本 和 5版本区别

    D('User')->where(['name'=>'thinkphp'])->find();
    model('User')->where('name','thinkphp')->find();
    

    6、3.2版本和5版本 数据库操作写法不一样

    M('User')->where(['name'=>'thinkphp'])->find();
    db('User')->where('name','thinkphp')->find();
    

    7、请求对象和响应对象
    5.0新增了请求对象Request和响应对象Response,Request统一处理请求和获取请求信息,Response对象负责输出客户端或者浏览器响应

    8、常量简化
    5.0版本废弃了原来的大部分常量定义,仅仅保留了框架的路径常量定义,其余的常量可以使用App类或者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
    

    相关文章

      网友评论

          本文标题:TP3.2和TP5的差别

          本文链接:https://www.haomeiwen.com/subject/lvkddftx.html