Initialize a CRUD for entities

This commit is contained in:
2019-11-19 09:32:33 +01:00
parent dc1bac05ee
commit 4575812a3b
11 changed files with 533 additions and 0 deletions

View File

@@ -32,6 +32,8 @@ use Chill\MainBundle\Doctrine\DQL\JsonAggregate;
use Chill\MainBundle\Doctrine\DQL\JsonbExistsInArray;
use Chill\MainBundle\Doctrine\DQL\Similarity;
use Chill\MainBundle\Doctrine\DQL\OverlapsI;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Reference;
/**
* This class load config for chillMainExtension.
@@ -96,6 +98,8 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface,
array('homepage' => $config['widgets']['homepage']):
array()
);
$this->configureCruds($container, $config['cruds']);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
@@ -117,6 +121,7 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface,
$loader->load('services/phonenumber.yml');
$loader->load('services/cache.yml');
$loader->load('services/templating.yml');
$loader->load('services/crud.yml');
}
public function getConfiguration(array $config, ContainerBuilder $container)
@@ -194,4 +199,27 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface,
'channels' => array('chill')
));
}
/**
*
* @param ContainerBuilder $container
* @param array $config the config under 'cruds' key
* @return null
*/
protected function configureCruds(ContainerBuilder $container, $config)
{
if (count($config) === 0) {
return;
}
$container->setParameter('chill_main_crud_route_loader_config', $config);
$definition = new Definition();
$definition
->setClass(\Chill\MainBundle\CRUD\Routing\CRUDRoutesLoader::class)
->addArgument('%chill_main_crud_route_loader_config%')
;
$container->setDefinition('chill_main_crud_route_loader', $definition);
}
}