lasselehtinen/cybertron
Composer 安装命令:
composer require lasselehtinen/cybertron
包简介
Fractal Transformer generator for Laravel
README 文档
README
The package provides an easy way to generate Fractal Transformers for your Laravel applications. The package automatically scans the models Eloquent relationships and attributes and generates the Transformer boiler plate. It also automatically adds casting for integer and boolean fields.
Example
Model
class TestModel extends Model { /** * Example hasMany relationship */ public function hasManySomethings() { return $this->hasMany(SomeOtherModel::class); } }
Migration
public function up() { Schema::create('test_models', function (Blueprint $table) { $table->increments('id_field'); $table->boolean('boolean_field'); $table->string('string_field'); }); }
Result
<?php namespace App; use League\Fractal; use \lasselehtinen\Cybertron\Tests\TestModel; class TestTransformer extends Fractal\TransformerAbstract { /** * List of resources to automatically include * * @var array */ protected $defaultIncludes = [ 'hasManySomethings', ]; /** * Transform TestModel * * @param TestModel $testModel * @return array */ public function transform(TestModel $testModel) { return [ 'id_field' => (integer) $testModel->id_field, 'boolean_field' => (boolean) $testModel->boolean_field, 'string_field' => $testModel->string_field, ]; } /** * Include HasManySomethings * * @param TestModel $testModel * @return \League\Fractal\Resource\Collection */ public function includeHasManySomethings(TestModel $testModel) { return $this->collection($testModel->hasManySomethings, new SomeOtherModelTransformer); } }
Installation
You can pull in the package via composer:
$ composer require lasselehtinen/cybertron --dev
Since you only need the generator for development, don't add the generator the providers array in config/app.php. Instead add it to app/Providers/AppServiceProvider.phpas shown below:
public function register() { if ($this->app->environment() == 'local') { $this->app->register(lasselehtinen\Cybertron\CybertronServiceProvider::class); } }
Usage
Run the artisan command make:transformer and give the Transformers name and the model with the full namespace like so:
php artisan make:transformer PostTransformer --model=\\App\\Post
Similar way as in Laravels built-in generators, you can provide a namespace for the generated Transformer.
php artisan make:transformer \\App\\Api\\V1\\Transformers\\PostTransformer --model=\\App\\Post
License
The MIT License (MIT). Please see License File for more information.
lasselehtinen/cybertron 适用场景与选型建议
lasselehtinen/cybertron 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.77k 次下载、GitHub Stars 达 9, 最近一次更新时间为 2017 年 01 月 25 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 lasselehtinen/cybertron 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 lasselehtinen/cybertron 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 1.77k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-01-25