gales/maker-bundle

Generador de ABMs basado en Petkopara Crud Generator reutilizando código del Maker Bundle de Symfony

Installs: 308

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 2

Open Issues: 0

Type:symfony-bundle

v0.6.2 2024-11-06 11:43 UTC

README

Symfony4 / 5 CRUD generator bundle with pagination, filtering, Twitter bootstrap v4.6 markup and many other features. It's Simple to use and fully customizable.

Designed to bring back the functionality of PetkoparaCrudGeneratorBundle, but reusing the logic from Symfony's Maker Bundle.

Pasos para la instalación

Agregar el Bundle con composer:

composer require gales/maker-bundle:^0.1

Pasos para desarrollo y pruebas locales

Clonar el repositorio del bundle fuera del proyecto al que se quiera agregar, ej estando dentro de la raiz del proyecto:

mkdir ../bundles
cd ../bundles
git clone https://github.com/GALes/maker-bundle.git

Agregar al composer.json del proyecto los siguientes repositorios:

"repositories":[
    {
        "type": "path",
        "url": "../bundles/maker-bundle",
        "options": {
            "symlink": true
        }
    }
],
"minimum-stability": "dev",
"prefer-stable": true

Agregar con composer los siguientes Bundles:

composer require gales/maker-bundle:*

Luego hacer un:

composer dump-autoload

Agregar en la configuracion de Twig que use Bootstrap 4 Form Theme

# config/packages/twig.yaml
twig:
    form_themes: ['bootstrap_4_layout.html.twig']

Uso

Ejecutar el comando

php bin/console gales:make:crud

Notaciones:

  • Listado: para definir el campo a utilizarse en el ordenamiento de una columna asociada a una entidad relacionada, se puede utilizar la siguiente notación en dicha entidad (@GalesMaker(orderBy=nombre_propiedad)). Ej: El listado de solicitudes posee la columna Estado la cual muestra la descripción del mismo, y se desea que se ordene por esta:
// src/Entity/Solicitud.php
namespace App\Entity;
...
class SolicitudBanco
{
    ...
    /**
     * @ORM\ManyToOne(targetEntity=SolicitudEstado::class)
     * @ORM\JoinColumn(nullable=false)
     */
    private $estado;
    ...
// src/Entity/SolicitudEstado.php
namespace App\Entity;
...
/**
 ...
 * @GalesMaker(orderBy="descripcion")
 */
class SolicitudEstado
{
    ...
    private $descripcion;
    ...

Archivos generados por el bundle:

Luego seleccionar la Entidad a la cual generar el ABM. Archivos que se generan

created: src/Service/<entity_name>CrudService.php (Logica auxiliar para el funcionamiento del ABM)
created: src/Controller/<entity_name>Controller.php (Controlador con la logica del ABM)
created: src/Form/<entity_name>Type.php (Formulario para el alta/edicion de la entidad)
created: src/Form/<entity_name>(Full)FilterType.php (Filtro del listado)
created: templates/<entity_name>/edit.html.twig (Vista de edicion de la entidad)
created: templates/<entity_name>/index.html.twig  (Vista para el listado de entidades)
created: templates/<entity_name>/new.html.twig  (Vista de creacion de nueva entidad)
created: templates/<entity_name>/show.html.twig (Vista de visualizacion de los datos de la entidad)