Backend 8 min

Laravel Modules

Modularizando Laravel

  • Laravel
  • PHP
  • Módulos

Crear un Proyecto Laravel

  1. 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

  1. Instalar el Paquete
    Añade el paquete laravel-modules a tu proyecto:

    composer require nwidart/laravel-modules 9.*
  2. Publicar el Proveedor
    Publica los archivos del proveedor con este comando:

    php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"
  3. Configurar composer.json
    Añade la línea "Modules" en la sección autoload de tu archivo composer.json:

    {
    	"autoload": {
    		"psr-4": {
    			"App\\": "app/",
    			"Modules\\": "Modules/"
    		}
    	}
    }
  4. Actualizar el Autoload
    Regenera el autoload con el siguiente comando:

    composer dump-autoload

Instalar Livewire-modules

  1. Instalar Livewire
    Agrega Livewire a tu proyecto:

    composer require livewire/livewire
  2. 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
  3. 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)

  1. Instalar Laravel Collective
    Si deseas usar formularios en Laravel, ejecuta:

    composer require laravelcollective/html

Crear un Módulo

  1. Crear un Nuevo Módulo
    Para crear un módulo nuevo, usa el siguiente comando:

    php artisan module:make module-name
  2. 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.