Я использую Zend Expressive Hal для генерации ответа Hal. Проблема в том, что когда я использую один и тот же resource_class для 2 маршрутов в метаданных Hal, он генерирует исключение и не работает. Мне было интересно, если есть способ, где я могу использовать один и тот же объект для более чем одного маршрута. Вот мой код метаданных Hal:
return [
MetadataMap::class => [
[
'__class__' => RouteBasedResourceMetadata::class,
'resource_class' => ImmutablePropertyObject::class,
'route' => 'api.ping',
'extractor' => ArraySerializableHydrator::class,
],
[
'__class__' => RouteBasedResourceMetadata::class,
'resource_class' => \Abstracts\PropertyObject::class,
'route' => 'api.getEventById',
'extractor' => \Event\EventHydrator::class,
],
[
'__class__' => RouteBasedResourceMetadata::class,
'resource_class' => \Abstracts\PropertyObject::class,
'route' => 'api.postEvent',
'extractor' => \Event\EventHydrator::class,
]
]
];
Вот мои маршруты:
return function (Application $app, MiddlewareFactory $factory, ContainerInterface $container) : void {
$app->get('/', App\Handler\HomePageHandler::class, 'home');
$app->get('/api/ping', App\Handler\PingHandler::class, 'api.ping');
$app->get('/api/event/:id', Event\Handler\EventReadHandler::class, 'api.getEventById');
$app->post('/api/event', Event\Handler\EventPostHandler::class, 'api.postEvent');
$app->put('/api/event', Event\Handler\EventUpdateHandler::class, 'api.updateEvent');
};