Home >PHP Framework >ThinkPHP >The difference between thinkphp5 and thinkphp3

The difference between thinkphp5 and thinkphp3

藏色散人
藏色散人Original
2019-06-29 10:56:434720browse

The difference between thinkphp5 and thinkphp3

The difference between thinkphp5 and thinkphp3

The official said, don’t use 3 thinking to use 5. Let's put it this way, they are two official products, not related to version iterations. The directory structure is different, and some function names are different. If it is a traditional mvc website, use tp3.2. If you are making an interface, use tp5. The main difference between before and after should be the processing of views.

Model instantiation

TP5 cancels the M method of automatically instantiating the model and uses the new instantiation model method. Without automatic instantiation, you must create a new model class yourself and instantiate it yourself. This is somewhat similar to the D method. There is a model method that has a function similar to the D method. It can be completely replaced in function.

U method

The U method is a built-in method for generating routes in TP. Method, now this method can be completely replaced by the url method

IS_GET and IS_POST methods have been canceled in TP5

If you want to continue using it, you can customize it in the project, as follows :

 define('IS_GET',Request::instance()->isGet());
 define('IS_POST',       Request::instance()->isPost());

The original TP’s I method

The previous TP had an I method to receive request parameters. Currently, the input method can be used instead

It should be noted that the new method

The current single new method has been changed to the save method. This is the previous update method, and it should be noted that the update method is also different. For new additions, you can directly use save, while for updates, you need to add isUpdate(true)

model("")->isUpdate(true)->save($data);

The biggest functional difference between TP5 and the original version of TP is the return. Now almost all database queries will return objects

$menuurl->find($menu_id);//此方法返回一个对象,可以使用->toArray()方法转换为数组
$this->where($condition)->order($order)->select();//此方法返回一个对象数组,所以要使用数据也必须转换,当然可以直接用对象

The C method is replaced by the config method

The database configuration is in database.php alone. If you want to get the parameters, use

config('database.prefix')

There are currently custom constants on the page. Method, the configuration method is similar to the previous version

If you need to replace it globally, you can add it directly to the configuration file:

'view_replace_str'  =>  [
    '__PUBLIC__'=>'/public/',
    '__ROOT__' => '/',
]

or directly use constant configuration

{$Think.config.PUBLIC}

Default The engine tag can be modified, that is, the previous a8093152e673feb7aba1828c43532094 can continue to be used

        // 模板引擎普通标签开始标记
        'tpl_begin'    => '{',
        // 模板引擎普通标签结束标记
        'tpl_end'      => '}',
        // 标签库标签开始标记
        'taglib_begin' => '{',
        // 标签库标签结束标记
        'taglib_end'   => '}',

This article comes from the ThinkPHP framework technical article column: http://www.php.cn/phpkj/thinkphp/

The above is the detailed content of The difference between thinkphp5 and thinkphp3. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn