-
Notifications
You must be signed in to change notification settings - Fork 4
Módulos
Jarvis Platform utiliza Pingpong 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 scafold del módulo users.
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
