Home>Article>PHP Framework> What is the difference between laravel and thinkphp
1. Different ways of rendering templates
In the Laravel framework, use return view() to render templates ;ThinkPHP uses the $this->display() method to render templates.
2. In actual development, we often encounter the problem that the development location is not fixed.
This causes us to frequently change the database configuration, causing trouble for development work. TP still has not avoided this "disaster". In the laravel framework, the emergence of .env environment files solves this trouble. We only need to configure the .env file in different working locations and do not avoid configuring it again, because whether it is git or svn, ".env will not be submitted to the server along with the file."
3. The Laravel framework provides a large number of closures
As a rookie, I currently only use the use method, that is, how to use outer variables inside the function.
4. Different points to note when passing values in post
In the Laravel framework, since it takes into account cross-site attacks, if you use the form form to pass the value in post mode, value, if {{csrf_field()}} is not added to the form, a TokenMethodnotfound syntax error will be reported, and the TP framework needs to manually complete the code to prevent cross-site attacks.
5. Differences in the way of writing conditional judgment statements
If else judgment statements and foreach statements in the Laravel framework must start with @if and end with @endif . If not, a syntax error will be reported, @foreach @endforeach is the same; and the TP framework is used in the same way as PHP syntax rules, directly using the if esle statement to judge and foreach loop traversal.
6. Laravel has a large number of built-in methods for developers to use
In actual applications, it is closer to the development idea of "let the object do everything", such as When performing background form validation, Laravel has a large number of built-in validation methods. For example, to verify the username: we can use 'username'=>'required' (cannot be empty) in the validate method | alpha_dash (must have numbers, letters and underlines) | between: 6,18 (between the number of digits); It also has a large number of built-in methods such as email; same: field name; diff: field name, etc., which greatly improves the development speed.
7. Encryption method
In the TP framework, we use md5(); to encrypt the user name and password. However, the disadvantage of md5 is that it can be reversely cracked, and under the same rules, the strings encrypted by md5 for the same password may appear the same, which reduces its security. However, the "Hash" Hash encryption one-way encryption method is built into the Laravel framework, and strings encrypted with the same parameters will never appear in the same situation, which improves security.
8. Create tables
Laravel has its own independent built-in structure for creating database tables, so you don’t need to use native SQL statements or SQLyogEnt or Navicat at all. The table building tool is used for database establishment, addition, deletion, modification, query and data interaction. I think this may be a highlight of its firmly occupying the No. 1 position. In ThinkPHP, we need to use SQL statements or table building tools to gradually improve the data.
8.1. First we need to build a model: I use gitbash. Gitbash is a command tool under Windows. Based on the msys GNU environment, it has a git distributed version control tool and is mainly used in git. But you can also use it directly in Laravel: php artisan make:model Models/GoodsModel -m to complete the creation of the model and the creation of the table structure (/database/migrations).
8.2. Fill data into the goods data table. Please note that the types of data are strictly distinguished and must be added. After adding, use the php artisan migrate command to complete the creation of the table.
Schema::create('goods', function (Blueprint $table) {
$table->increments('id')->comment('product primary key');
$table->string('title')->comment('Title of the product');
8.3. What should I do if a field does not meet the requirements or needs to be added? ? No need to worry, pull the project from github and modify it directly in the data table. Just use:
php artisan migrate:refresh
9、ORM
The command to create a model has been used when introducing table creation:
php artisan make:model XXX;
The model in Laravel is the best interpretation of object-oriented development ideas. Let the object help us complete the requirements.
Excerpted from the 5.1 manual: (Laravel's Eloquent ORM provides a beautiful and concise ActiveRecord implementation to interact with the database. Each database table has a corresponding "model" that can be used Interact with the data table. You can use the model to search for data in the data table and add records to the data table.)
In actual use, I also really feel that by creating models, I can control the data. The convenience brought by table operations, such as: batch assignment, cross-table query, deletion of models and soft deletion, model association, of course, these can also be implemented using models in the TP framework. This is a matter of opinion and depends on personal preferences. .
10. Usage of session
10.1. ThinkPHP encapsulates the Session operation and can be used without introducing it. The startup of the Session will be automatically executed when the application is initialized, so there is no need to manually use Session::start() to start the Session.
There is no essential difference between using the Session class operation and calling $_SESSION in the ordinary way. It is just that many parameters of the Session class can be flexibly set according to the project configuration. Examples of the most commonly used operation methods:
/ / Check whether the Session variable exists: Session::is_set('name');
// Assign a value to the Session variable: Session::set('name','value');
// Get Session variables: Session::get('name');
10.2. Common methods of Session in Laravel:
$request->session()->get( 'key');//Get a key name in the session
$request->session()->set('key','default');//Set a default value , when the specified key name does not exist, the default value is returned
$request->session()->all();//Return all data
session('k'=> ;$v);//Write session saved data
and flash memory data session()->flash() and retain specific data->keep(['','']);
You can also customize the session driver.
php Chinese website, a large number of freelaravel introductory tutorials, welcome to learn online!
The above is the detailed content of What is the difference between laravel and thinkphp. For more information, please follow other related articles on the PHP Chinese website!