This bundle provides the integration of CRUDlex in a Symfony 4 project.
Open a command console, enter your project directory and execute:
$ composer require philiplb/crudlexsymfony4bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require philiplb/crudlexsymfony4bundle
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Be aware that unfortunately one depedency requires the composer.json to accept unstable releases:
"minimum-stability": "dev",
"prefer-stable": true,
Add the bundle to your config/bundles.php
:
<?php
// config/bundles.php
return [
// ...
philiplb\CRUDlexSymfony4Bundle\CRUDlexSymfony4Bundle::class => ['all' => true],
//...
];
Or, depending on your setup, enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php
file of your project:
<?php
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
// ...
new philiplb\CRUDlexSymfony4Bundle\CRUDlexSymfony4Bundle(),
);
// ...
}
// ...
}
CRUDlex brings some routes so they must be added to your config/routes.yaml
. This makes them available under /crud:
crudlex:
resource: '@CRUDlexSymfony4Bundle/Resources/config/routes.yaml'
prefix: /crud
CRUDlexSymfony4Bundle is basically a chunk of services. Some configuration like the location of the crud.yml happens
here. You can override each service in order to fit your requirements with the config/services.yaml
. Here is the
complete configuration to pick from:
services:
crudlex.dataFactoryInterface:
public: true
class: "CRUDlex\\MySQLDataFactory"
arguments:
- "@doctrine.dbal.default_connection"
crudlex.entityDefinitionFactoryInterface:
public: true
class: "CRUDlex\\EntityDefinitionFactory"
crudlex.fileSystemAdapter:
public: true
class: "League\\Flysystem\\Adapter\\Local"
arguments:
- "%kernel.project_dir%/var"
crudlex.fileSystem:
public: true
class: "League\\Flysystem\\Filesystem"
arguments:
- "@crudlex.fileSystemAdapter"
crudlex.entityDefinitionValidatorInterface:
public: true
class: "CRUDlex\\EntityDefinitionValidator"
crudlex.service:
public: true
class: "CRUDlex\\Service"
arguments:
- "%kernel.project_dir%/config/crud.yml"
- "%kernel.cache_dir%"
- "@Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface"
- "@translator"
- "@crudlex.dataFactoryInterface"
- "@crudlex.entityDefinitionFactoryInterface"
- "@crudlex.fileSystem"
- "@crudlex.entityDefinitionValidatorInterface"
CRUDlex\Controller:
public: true
class: "CRUDlex\\Controller"
arguments:
- "@crudlex.service"
- "@crudlex.fileSystem"
- "@twig"
- "@session"
- "@translator"
kernel.listener.crudlex:
class: philiplb\CRUDlexSymfony4Bundle\EventListener\RequestListener
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
arguments:
- "@crudlex.service"
- "@session"
- "@translator"
crudlex.twigExtensions:
class: "philiplb\\CRUDlexSymfony4Bundle\\Twig\\CRUDlexExtension"
tags: ["twig.extension"]
arguments:
- "@request_stack"
- "@session"