tamaspap / laravel5-fractal
为 Laravel 5 设计的一个简单的分形服务提供商和转换器生成器。
1.3
2015-08-08 18:47 UTC
Requires
- php: >=5.4.0
- illuminate/support: 5.0.x|5.1.x
- tamaspap/fractal: 0.13.*
README
为 Laravel 5 和 Lumen 设计的一个简单的分形服务提供商和转换器生成器
欢迎来到我的第一个 Laravel 包,让我们摇滚吧。
新特性:从版本 1.2 开始,已移除自动类别名。
使用以下命令通过 composer 安装此包
composer require cyvelnet/laravel5-fractal
Laravel 5
更新 composer 后,将 ServiceProvider 添加到 config/app.php 中的 providers 数组(适用于 Laravel >= 5)
Cyvelnet\Laravel5Fractal\Laravel5FractalServiceProvider::class,
并注册 Facade
'Fractal' => Cyvelnet\Laravel5Fractal\Facades\Fractal::class
Lumen
在 lumen 的 /bootstrap/app.php 中注册服务提供商
$app->register(Cyvelnet\Laravel5Fractal\Laravel5FractalServiceProvider::class);
并取消注释该行
$app->withFacades();
并最终使用以下命令注册 Facade
class_alias(Cyvelnet\Laravel5Fractal\Facades\Fractal::class, 'Fractal');
现在您可以使用以下简单命令开始使用此包
$user = User::find(1);
return Fractal::item($user, new UserTransformer)->responseJson(200);
或者
$users = User::get(); // $users = User::paginate();
return Fractal::collection($users, new UserTransformer)->responseJson(200);
当您传递 Laravel 的分页对象时,您将自动获得一些额外的属性。
如果您只想获取转换后的数组,您可以这样做
Fractal::collection($user, new UserTransformer)->getArray();
现在您可以使用 artisan 生成转换器类
php artisan make:transformer
在这种情况下,我们将使用 artisan make:transformer UserTransformer,转换器文件将自动创建在 App\Transfomers 目录中
现在您可以打开生成的转换器文件,并开始按照您的喜好格式化数据
public function transform($user)
{
return [
'id' => $user->user_id,
'name' => "{$user->user_firstname} {$user->user_lastname}",
...
];
}
您还可以发布配置文件以更改实现,以适应您的要求。
php artisan vendor:publish
由于要将 Lumen 迁移的更改数量非常少,因此将添加新的分支以处理未来 Laravel 5 和 Lumen 之间的破坏性更改。
待办事项
- 为 artisan 命令添加生成子转换器和包括功能框架的功能