Skip to content
This repository was archived by the owner on Jun 11, 2019. It is now read-only.

Módulos

Jose Luis Fonseca edited this page Oct 22, 2017 · 10 revisions

Jarvis Platform utiliza Laravel Modules para manejar una estructura modular. La ventaja de esto es que podemos crear módulos para la aplicación y compartirlos entre instalaciones.

Por defecto Jarvis Platform trae un módulo de usuarios y permisos que explicaremos en otra sección.

Creando Módulos.

Lo mas recomendable para crear un módulo es hacerlo como paquete a parte de la instalación, esto hace que sea más fácil de mantener y transportar entre instalaciones. Usando la documentación de Pingpong Modules podemos ver que tenemos un comando para crear el módulo.

php artisan module:make users

Esto creará todo el scaffold del módulo users.

Tenga en cuenta

Tenga en cuenta que la carpeta modules esta ignorada en el control de versiones. Esto para poder manejar los módulos de forma independiente en sus propios repositorios. Si usa esta forma para crear sus módulos, lo mejor es que agregue la ruta del modulo al control del versiones y agregue el path al autoload psr-4 de su proyecto.

Service Provider

Cada módulo tiene un Service provider que se declara en el archivo module.json que se crea con el módulo. Este service provider será cargado automáticamente y es acá donde podrá registrar cualquier cosa que necesite como menus o cualquier otro bind

    /**
     * Boot the application events.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerConfig();
        $this->registerTranslations();
        $this->registerViews();
        User::observe(new UserObserver());
        Role::observe(new RoleObserver());
        $this->setMenu();
    }

Module.json

Este archivo es importante para darle información al sistema acerca del módulo, originalmente el archivo se crea con la siguiente estructura:

{
    "name": "Users",
    "alias": "users",
    "description": "",
    "keywords": [],
    "active": 1,
    "order": 0,
    "providers": [
        "Modules\\Users\\Providers\\UsersServiceProvider"
    ],
    "aliases":{},
    "files": [
        "start.php"
    ]
}

En muy importante agregar una propiedad mas a ese objeto "display_name": "Usuarios", Jarvis Platform la usará display_name en varias partes para mostrar en la interfaz el nombre amigable del módulo. La nueva estructura quedaría de la siguiente forma:

{
    "name": "Users",
    "display_name": "Usuarios",
    "alias": "users",
    "description": "",
    "keywords": [],
    "active": 1,
    "order": 0,
    "providers": [
        "Modules\\Users\\Providers\\UsersServiceProvider"
    ],
    "aliases":{},
    "files": [
        "start.php"
    ]
}

Para más información sobre como funciona el componente de módulos, por favor consultar su documentación oficial

Clone this wiki locally