fd6130 / fractal-bundle
League 的 Fractal Bundle,为 Symfony 实现了依赖注入到您的转换器中
4.1.1
2022-05-23 14:40 UTC
Requires
- php: >=7.4
- league/fractal: ~0.17
- symfony/framework-bundle: ^4.0|^5.0|^6.0
Requires (Dev)
- symfony/maker-bundle: ^1.0
README
此包为 Symfony 提供了 league/fractal 的集成。此外,它允许您使用转换器作为服务。
这是 samjarrett/FractalBundle 的分支版本。
入门
要求
- PHP >= 7.4
- Symfony 4, 5 和 6
通过 composer 安装
composer require fd6130/fractal-bundle
如果您使用 symfony flex,它将自动为您注册该包。
使用方法
您可以使用命令 php bin/console make:fractal-transformer
创建一个转换器。
或者,您可以自己创建它,并将其放置在 src/Transformer
中。
class UserTransformer extends TransformerAbstract { public function transform(User $user): array { $data = [ 'id' => $user->id(), 'name' => $user->name(), ]; return $data; } } $resource = new Collection($users, UserTransformer::class); $response = $manager->createData($resource)->toArray();
向转换器注入服务
您可以通过构造函数将服务注入到转换器中
class UserTransformer extends TransformerAbstract { private $entityManager; public function __construct(EntityManagerInterface $entityManager) { $this->entityManager = $entityManager; } public function transform(User $user): array { $data = [ 'id' => $user->id(), 'name' => $user->name(), ]; // $this->entityManager->getRepository(...) return $data; } }