blainesch / laravel-pretty-controller
此包的最新版本(0.0.1)没有可用的许可证信息。
0.0.1
2014-06-09 04:37 UTC
Requires
- php: >=5.4.0
- willdurand/negotiation: @stable
Requires (Dev)
- mockery/mockery: dev-master
This package is not auto-updated.
Last update: 2024-09-24 07:30:30 UTC
README
此库提供有用的内容协商。例如,如果您从典型的Laravel网站请求JSON返回,您仍然会得到HTML返回。我仔细查看Accept
头和type
(例如.json
)以最佳确定要渲染的媒体类型。
这意味着什么?这意味着您的控制器操作更干净,您只需返回值即可!
class UserController extends BaseController { public function show() { return View::make('user.show')->with([ 'name' => 'BlaineSch', ]); } }
现在,让我们响应多种内容类型并美化我们的控制器!
class UserController extends BaseController { public function showAction() { return ['name' => 'blainesch']; } }
安装
Composer
'require': { "blainesch/laravel-pretty-controller": "0.0.1" }
更新Controller
并在您的app/config/app.php
文件中添加CoreController
值。
'aliases' => [ // ... 'Controller' => 'Blainesch\LaravelPrettyController\Action\PrettyController', 'CoreController' => 'Illuminate\Routing\Controller', // ... ]
注册您的媒体类型
创建一个bootstrap/media.php
<?php use Blainesch\LaravelPrettyController\Http\MediaType; MediaType::add('html', [ 'conditions' => [ 'accept' => [ 'text/html', '*/*', ], ], 'encode' => function($request, $response) { $class = strtolower(str_replace('Controller', '', $request['controller'])); return \View::make("{$class}.{$request['method']}")->with($response); }, ]); MediaType::add('json', [ 'conditions' => [ 'type' => 'json', 'accept' => [ 'application/json', 'application/x-json', ], ], 'encode' => function($request, $response) { return json_encode($response); }, ]);
在Composer自动加载器下方将此文件包含在bootstrap/autoload.php
中
require __DIR__.'/media.php';