Пользовательский контроллер многоразового использования ApiPlatformPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Пользовательский контроллер многоразового использования ApiPlatform

Сообщение Anonymous »

У меня есть контроллер, который выполняет некоторые функции управления файлами, связанными с сущностями. Я хочу, чтобы этот контроллер можно было использовать повторно:

Код: Выделить всё

#[ApiResource(
itemOperations: [
'deleteApiFile' => [
'method' => 'DELETE',
'path' => '/foo/{id}/delete-file',
'read' => false,
'controller' => ApiFileDeleteController::class,
],
],
)]
class Foo { /* ... */ }

#[ApiResource(
itemOperations: [
'deleteApiFile' => [
'method' => 'DELETE',
'path' => '/bar/{id}/delete-file',
'read' => false,
'controller' => ApiFileDeleteController::class,
],
],
)]
class Bar { /* ... */ }
А это контроллер:

Код: Выделить всё

class ApiFileDeleteController
{
public function __invoke(string $id): void
{
// I have the $id now, how do I determine which entity it belongs to?
//
// Logic in this controller is always the same and always for an entity
$example = $this->em->getRepository($class)->find($id);
// How do I get $class?
}
}
Вопрос: Как я могу получить конфигурацию ApiPlatform в контроллере (или __construct)?
  • Я мог бы создать FooApiFileDeleteController и BarApiFileDeleteController, но в будущем, если я захочу расшириться, мне нужно будет продолжать добавлять контроллер, только для имени класса. Я бы предпочел приложить немного усилий сейчас, и в будущем мне не придется об этом беспокоиться.
  • Я мог бы добавить параметр и добавить значение по умолчанию, но тогда на него может повлиять пользователь, я этого не хочу.
  • Изменить: В настоящее время проверяю процессоры на основе этого аналогичного вопроса. ApiPlatform v2.6 этого не делает. к сожалению, поддерживаю


Подробнее здесь: https://stackoverflow.com/questions/793 ... controller
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»