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

2018年11月28日 243点热度 0人点赞 0条评论

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


图片


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官方网站


图片

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

root

这个人很懒,什么都没留下

文章评论