2017 © Pedro Peláez
 

symfony-bundle crudlexsymfony4bundle

Symfony 4 integration of CRUDlex.

image

philiplb/crudlexsymfony4bundle

Symfony 4 integration of CRUDlex.

  • Wednesday, July 25, 2018
  • by philiplb
  • Repository
  • 1 Watchers
  • 0 Stars
  • 92 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

CRUDlexSymfony4Bundle

This bundle provides the integration of CRUDlex in a Symfony 4 project., (*1)

Installation

Applications that use Symfony Flex

Open a command console, enter your project directory and execute:, (*2)

$ composer require philiplb/crudlexsymfony4bundle

Applications that don't use Symfony Flex

Step 1: Download the Bundle

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:, (*3)

$ composer require philiplb/crudlexsymfony4bundle

This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation., (*4)

Be aware that unfortunately one depedency requires the composer.json to accept unstable releases:, (*5)

"minimum-stability": "dev",
"prefer-stable": true,

Step 2: Enable the Bundle

Add the bundle to your config/bundles.php:, (*6)

<?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:, (*7)

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new philiplb\CRUDlexSymfony4Bundle\CRUDlexSymfony4Bundle(),
        );

        // ...
    }

    // ...
}

Step 3: Add the Routes

CRUDlex brings some routes so they must be added to your config/routes.yaml. This makes them available under /crud:, (*8)

crudlex:
    resource: '@CRUDlexSymfony4Bundle/Resources/config/routes.yaml'
    prefix: /crud

Step 4: Configure the Services to your Requirements

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:, (*9)

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"

The Versions