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官方网站
文章评论