fusio/adapter-symfony

集成 symfony 框架的功能

v5.0.0 2022-01-07 20:52 UTC

This package is auto-updated.

Last update: 2024-09-03 19:00:04 UTC


README

Fusio适配器,帮助集成Symfony功能。您可以在Fusio项目中按照以下步骤安装适配器

composer require fusio/adapter-symfony
php bin/fusio system:register "Fusio\Adapter\Symfony\Adapter"

配置

所有实体都需要放在src/Entity文件夹中,因为Doctrine连接只检查此文件夹。

示例

通过Doctrine连接,您可以使用Doctrine ORM构建API端点,即

<?php

namespace App\Action;

use Fusio\Engine\ActionAbstract;
use Fusio\Engine\ContextInterface;
use Fusio\Engine\ParametersInterface;
use Fusio\Engine\RequestInterface;
use JMS\Serializer\SerializerBuilder;

class Messages extends ActionAbstract
{
    public function handle(RequestInterface $request, ParametersInterface $configuration, ContextInterface $context)
    {
        /** @var \Doctrine\ORM\EntityManager $entityManager */
        $entityManager = $this->connector->getConnection('doctrine');

        /** @var \JMS\Serializer\ArrayTransformerInterface $serializer */
        $serializer = SerializerBuilder::create()->build();

        $dql = "SELECT m FROM App\Entity\Message m ORDER BY m.id DESC";

        $query = $entityManager->createQuery($dql);
        $messages = $query->getResult();

        $result = [];
        foreach ($messages as $message) {
            $result[] = $serializer->toArray($message);
        }

        return $this->response->build(200, [], [
            'messages' => $result,
        ]);
    }
}