Laravel 5.0 发布 新版本特性详解(3)


public function redirectForAuth()
{
    return Socialize::with('twitter')->redirect();
}
 
public function getUserFromProvider()
{
    $user = Socialize::with('twitter')->user();
}


所以你不用再耗费大量的时间来编写 OAuth 认证流程, 分分钟轻松搞定. 包含有关这个可选包的全部细节.

Flysystem 集成

新版 Laravel 还包含了强大的 Flysystem 文件处理静态库. 通过这个库, 开发者可以轻易上手, 使用完全一致的 API 来实现本地, Amazon S3 或者 Rackspace 进行文件存储. 比如, 在 Amazon S3 存储一个文件, 可以简单到这样:

复制代码 代码如下:


Storage::put('file.txt', 'contents');


了解有关 Laravel Flysystem 集成的更多细节, 可以查看它的完整文档

表单请求

Laravel 5.0 带来了全新的 form requests, 它扩展自 Illuminate\Foundation\Http\FormRequest 类. 这些请求对象可以和控制器方法注入相结合, 提供一种全新的验证用户输入的方法. 简单举一个 FormRequest 的示例:

复制代码 代码如下:


namespace App\Http\Requests;
 
class RegisterRequest extends FormRequest {
 
    public function rules()
    {
        return [
            'email' => 'required|email|unique:users',
            'password' => 'required|confirmed|min:8',
        ];
    }
 
    public function authorize()
    {
        return true;
    }
 
}


定义好对应的 FormRequest 扩展类之后, 在控制器方法中可以获得类型提示:

复制代码 代码如下:


public function register(RegisterRequest $request)
{
    var_dump($request->input());
}


当 Laravel 的 IoC container 识别到方法变量的类型时, 它会自动注入 FormRequest 的实例, 于是这个请求会被 自动验证. 这意味着当你的控制器被调用时, 你可以安全地使用该请求中包含的输入数据, 因为他们已经被你在表单请求类中指定的规则进行过验证了. 不仅如此, 如果该请求验证失败, 系统还会自动重定向到你预定义好的路由, 并且包含有错误提示的信息(根据需要写入session, 或者转换为 JSON 格式.) 表单验证从未如此简单过. 了解有关 FormRequest 验证的更多细节, 请查阅.

控制器请求简单验证

Laravel 5.0 的控制器基类还包含了一个 ValidatesRequests 的 trait. 该 trait 提供了简单的 validate 方法, 用于验证请求. 如果 FormRequests 对于你的应用来说太重了, 那你就可以用这个轻量版的:

复制代码 代码如下:


public function createPost(Request $request)
{
    $this->validate($request, [
        'title' => 'required|max:255',
        'body' => 'required',
    ]);
}


如果验证失败, 系统会抛出一个异常, 对应的 HTTP 请求会被自动发送给浏览器. 验证错误也会同时写入 session. 如果请求是用 AJAX 方式发起, Larave 会自动发送一个 JSON 形式的验证错误信息.

了解有关 FormRequest 验证的更多细节, 请查阅.

全新的生成器

为了方便生成新的默认应用结构, 全新的 Artisan 生成命令已经被添加到框架中. 你可以通过 php artisan list 查看详细命令.

配置缓存

通过 config:cache 命令, 可以把所有的配置项写入一个缓存文件中.

Symfony VarDumper

用于输出变量信息进行调试的辅助方法 dd, 在新版本中进行了升级, 使用强大的 Symfony VarDumper. 它可以输出带有颜色高亮和数组折叠功能的调试信息. 你可以尝试一下:

复制代码 代码如下:


dd([1, 2, 3]);

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d222ed84dee31a24e278bdec8a96f2c5.html