for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Silverback\ApiComponentBundle\DataProvider\Item;
use ApiPlatform\Core\DataProvider\ItemDataProviderInterface;
use ApiPlatform\Core\DataProvider\RestrictedDataProviderInterface;
use Doctrine\Common\Persistence\ManagerRegistry;
use Silverback\ApiComponentBundle\Entity\Layout\Layout;
final class LayoutDataProvider implements ItemDataProviderInterface, RestrictedDataProviderInterface
{
/**
* @var ManagerRegistry
*/
private $managerRegistry;
* LayoutDataProvider constructor.
*
* @param ManagerRegistry $managerRegistry
public function __construct(ManagerRegistry $managerRegistry)
$this->managerRegistry = $managerRegistry;
}
* @param string $resourceClass
* @param string|null $operationName
* @param array $context
* @return bool
public function supports(string $resourceClass, string $operationName = null, array $context = []): bool
return $resourceClass === Layout::class;
* @param int|string $id
* @return Layout|null
public function getItem(string $resourceClass, $id, string $operationName = null, array $context = [])
$manager = $this->managerRegistry->getManagerForClass($resourceClass);
if (null === $manager) {
return null;
$repository = $manager->getRepository($resourceClass);
return $id === 'default' ? $repository->findOneBy(['default' => true]) : $repository->find($id);