17611538698
webmaster@21cto.com

关于Laravel,我们要关心它什么?

资讯 0 2482 2018-12-01 11:57:07

21CTO导读:如果您之前没有听说过Laravel,并且一直在开发网站或Web应用程序,那么我们即将进入PHP Rocks的世界~ 


Laravel.jpg

 
Laravel是一款新型PHP框架,可以大大提高开发者的工作效率。它已发布很长一段时间,第一个版本在2011年6月发布。目前,创始人Taylor Otwel与和他的团队还在积极改进它。
 
目前的最新版本(v5.7)在2018年9月发布,它运行在PHP 7.1.3及更高版本上,Laravel 遵循MVC(Modules 模型 - View 视图 - Controller 控制器)模式,允许在开发者在Web应用程序中分离不同维度的关注点。
 
在本文中,我将描述Laravel中的一些最重要的功能,希望能说服你尝试一下Laravel,我们并没有什么可失去的,还有很多东西可以获得。
 
Laravel之特性
 
我们将Laravel最重要的功能列表如下。
 
强大的ORM(对象关系映射)
 
PHP的Active Model的实现。简单来讲,这种模式允许我们将数据库表作为一个类呈现,这个类的实例与表中的每一行相关联。有点迷惑?就像我们可以定义一个类,例如  User,它会绑定到数据库中的“users”表。然后,“users”表中的每一行都表示为User 类的实例,是不是很简单?
 
class User extends Authenticatable
{
    use Notifiable;
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];
    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}
 
定义好这个类,如果要在数据库中查找用户,我们只需调用User::find(1);其中1是users表中行的唯一ID,另外 Laravel的Eloquent 能够允许更复杂的查询选择。
 
Blade模板
 
Laravel的视图层包含应用程序提供的所有HTML“代码”。这样一下,开发者再不用将业务逻辑与表示层混合起来。视图支持Blade模板引擎,开发者可以编写可重用的HTML代码片段以及通用的布局文件。当应用程序的某些页面包含相同的组件(例如页头,页脚)时,它会变得非常有用。我们举一个例子,下面是关于我们的代码:
 
@extends('layouts.app')
@section('title', 'Page Title')
@section('sidebar')
    @parent
    <p>This is appended to the master sidebar.</p>
@endsection
@section('content')
    <p>This is my body content.</p>
@endsection
 
请各位务必注意,Blade模板必须使用.blade.php 扩展名保存。
 
控制器
 
控制器允许将相关的请求处理逻辑分组到单个类中。
 
<?php
namespace App\Http\Controllers;
use App\User;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
    /**
     * Show the profile for the given user.
     *
     * @param  int  $id
     * @return View
     */
    public function show($id)
    {
        return view('user.profile', ['user' => User::findOrFail($id)]);
    }
}
 
路由
 
Laravel提供一种非常简单的路由机制,其中所有路由都列在一个文件中,非常方便。当然如果你愿意,当然可以有多个文件,特别是如果您有更大应用的API支持。以下是路由定义的示例:
 
Route::get('profiles', ‘UserController@getProfiles');
 
接下,我们可以在任何HTML表单中的任何位置使用此路由(使用Blade模板)。
 
<form method=“GET” action=“/profiles”>
    @csrf
    ...
</form>
 
提交此表单后,路由机制将识别路由并执行定义中指定的代码。在上面的代码中,Laravel将查找  UserController 类和  getProfiles 方法。
 
此外,开发者可以通过@csrf 在表单中添加注释,可以保护网站系统免受跨站请求伪造(CSRF)攻击。
 
用户认证
 
每个网站都需要有完整的注册和登录认证机制,然后在10秒内忘记了密码等功能?没问题,我们只需运行这两个简单的命令: 
 
php artisan make:auth
php artisan migrate 
 
大多数Web应用都要实现身份验证系统,不用再重新发明轮子,使用Laravel,它是免费的。
 
小结
 
使用Laravel开发Web应用程序有还有很多好处,它会为开发者节省大量时间。
 
我们今天强调的主要功能如下:
 
1)强大的ORM
2)Blade模板
3)控制器
4)方便的路由
5)超快实现的认证机制
 
还有更多等着我们一起去发现,允许使用大量的Laravel资源和kick-ass文档,还有一个相当活跃的Laravel开发者社区。


编译:洛逸
来源:Laravel官方网站


评论