Laravel Modules
Modularizando Laravel
Crear un Proyecto Laravel
-
Crear el Proyecto
Ejecuta el siguiente comando para crear un nuevo proyecto Laravel:composer create-project laravel/laravel your-project-name 9.*
Instalar Laravel-Modules
-
Instalar el Paquete
Añade el paquetelaravel-modulesa tu proyecto:composer require nwidart/laravel-modules 9.* -
Publicar el Proveedor
Publica los archivos del proveedor con este comando:php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider" -
Configurar
composer.json
Añade la línea"Modules"en la secciónautoloadde tu archivocomposer.json:{ "autoload": { "psr-4": { "App\\": "app/", "Modules\\": "Modules/" } } } -
Actualizar el Autoload
Regenera el autoload con el siguiente comando:composer dump-autoload
Instalar Livewire-modules
-
Instalar Livewire
Agrega Livewire a tu proyecto:composer require livewire/livewire -
Instalar el Paquete de Livewire para Módulos
Instala el paquete que permite usar Livewire en los módulos:composer require mhmiton/laravel-modules-livewire -
Publicar la Configuración de Livewire
Publica la configuración de Livewire para los módulos con:php artisan vendor:publish --tag=modules-livewire-config
Instalar Dependencias Adicionales (Opcional)
-
Instalar Laravel Collective
Si deseas usar formularios en Laravel, ejecuta:composer require laravelcollective/html
Crear un Módulo
-
Crear un Nuevo Módulo
Para crear un módulo nuevo, usa el siguiente comando:php artisan module:make module-name -
Crear un Módulo Livewire
Para crear un módulo Livewire, ejecuta:php artisan module:make-livewire Pages/AboutPage
Información sobre Livewire
Rutas
Configura las rutas para tu módulo de la siguiente manera:
Route::prefix('inventory')->group(function() {
Route::view('/', 'inventory::livewire.administration.product.index');
});
Plantilla Básica de Livewire
Crea el archivo view/layouts/master.blade.php con el siguiente contenido:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@yield('title')</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.1/css/bootstrap.min.css" />
@livewireStyles
</head>
<body>
<div class="container mt-4">@yield('content')</div>
@livewireScripts
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.1/js/bootstrap.min.js"></script>
</body>
</html>
Añadir Componente Livewire
Para añadir un componente Livewire, usa el siguiente código en tu vista:
@livewire('module::administration.product.product')
Plantilla del Módulo
Crea la plantilla del módulo con el siguiente contenido:
@extends('layouts.master')
@section('title', 'Título')
@section('content')
@livewire('module::administration.product.product')
@endsection
Con estos pasos, tu proyecto Laravel estará completamente configurado para usar módulos y Livewire. Puedes comenzar a crear y organizar tu aplicación usando estas herramientas poderosas.