定制 octaviocaba/module-commands-laravel-package 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

octaviocaba/module-commands-laravel-package

最新稳定版本:v0.0.4

Composer 安装命令:

composer require octaviocaba/module-commands-laravel-package

包简介

Laravel commands package for custom modules

README 文档

README

Este paquete añade comandos Artisan para crear artefactos organizados por módulos dentro de la carpeta app/Modules/.

Comando: make:module-controller

Crear un controlador dentro de un módulo:

php artisan make:module-controller NombreController nombre_del_modulo

Ejemplo:

php artisan make:module-controller TestController querylog

Esto creará el archivo:

app/Modules/querylog/src/Http/Controllers/TestController.php

El namespace dentro del archivo generado sigue la convención:

Modules\{StudlyModule}\Http\Controllers

por ejemplo, para querylog será Modules\Querylog\Http\Controllers. Si el archivo destino ya existe, el comando preguntará interactívamente si debe sobrescribirlo. Para evitar la confirmación y forzar la sobrescritura, usa la opción --force:

php artisan make:module-controller TestController querylog --force

Comportamiento:

  • Si no usas --force, y el archivo ya existe, el comando pedirá confirmación (sí/no). Si respondes no, el archivo no se modifica.
  • Si usas --force, el archivo existente será sobrescrito sin pedir confirmación.

Opción: --namespace-root

Además de la configuración en config/module-commands.php, el comando acepta la opción --namespace-root para anular la raíz del namespace sólo en la invocación actual. Ejemplo:

php artisan make:module-controller TestController querylog --namespace-root="MyCompany\\Modules"

Prioridad: si se proporciona --namespace-root se usa ese valor; si no, se lee module-commands.module_namespace y, en ausencia de éste, se utiliza el valor por defecto Modules.

Nota: la opción acepta cualquier cadena válida como raíz; al generar se normalizan barras invertidas finales pero no se realizan comprobaciones adicionales sobre el namespace proporcionado.

Contenido del stub

El stub usado es src/Console/Commands/stubs/controller-plain.stub y contiene los marcadores $CLASS_NAMESPACE$ y $CLASS$ que son reemplazados por la implementación del comando.

Tests

El paquete incluye tests que verifican:

  • La generación en app/Modules/... y el reemplazo del namespace y nombre de clase.
  • El comportamiento de sobrescritura (confirmación negativa y --force).

Ejecuta los tests con:

./vendor/bin/phpunit --colors

Si necesitas cambiar la convención de namespace (por ejemplo, otro prefijo que no sea Modules), puedes publicar y editar la configuración del paquete (config/module-commands.php) o usar la variable de entorno MODULE_COMMANDS_NAMESPACE.

ModuleCommandsLaravelPackage

Un pequeño paquete para Laravel que agrega comandos Artisan para gestionar una estructura modular dentro de paquetes y aplicaciones Laravel. Simplifica la creación, listado, habilitación/deshabilitación, migraciones y el scaffolding de componentes de módulos (controladores, modelos, migraciones, factories, seeders, rutas y vistas).

Features

  • Crear el scaffold de un nuevo módulo
  • Listar módulos registrados
  • Habilitar / deshabilitar módulos
  • Generar controladores, modelos, requests y resources dentro de un módulo
  • Ejecutar migraciones, seeders y rollbacks específicos de un módulo
  • Publicar assets y configuraciones del módulo
  • Integración con el autoloading y los service providers de Laravel

Instalación

  1. Requerir el paquete vía composer:
composer require octaviocaba/module-commands-laravel-package
  1. Registrar el service provider en config/app.php:
'providers' => [
  OctavioCaba\ModuleCommands\ModuleCommandsServiceProvider::class,
];
  1. Publicar la configuración y los stubs (opcional):
php artisan vendor:publish --provider="OctavioCaba\ModuleCommands\ModuleCommandsServiceProvider" --tag="config"
php artisan vendor:publish --provider="OctavioCaba\ModuleCommands\ModuleCommandsServiceProvider" --tag="stubs"

Configuración

Después de publicar, edita config/module-commands.php para ajustar:

  • namespace raíz para las clases generadas

Comportamiento por defecto si no hay configuración

Si no publicas el archivo de configuración module-commands.php o éste no contiene la clave module_namespace, el comando usará el valor por defecto Modules como raíz del namespace.

Esto permite que el comando funcione sin configuración adicional, generando por defecto Modules\\{Module}\\Http\\Controllers.

Comandos Disponibles

  • Genera controllers para el módulo
php artisan module:make:controller {module} {name} [--resource] [--api]

Estructura de directorios y ficheros

Contenido típico de un módulo:

Modules/
└── blog/
  ├── src/
  │   ├── Http/
  │   │   ├── Controllers/
  │   ├── Models/
  │   ├── Database/
  │   │   ├── Migrations/
  │   │   └── Seeders/
  │   ├── Providers/
  │   └── routes.php
  ├── resources/
  │   └── views/
  └── composer.json

Testing

Correr tests:

composer test
# or
vendor/bin/phpunit

Licencia

MIT — consulta el fichero LICENSE para más detalle.

统计信息

  • 总下载量: 6
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-07