-
Notifications
You must be signed in to change notification settings - Fork 4
Módulos
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.
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 usersEsto creará todo el scaffold del módulo users.
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.
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();
}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