khaledneam / module-generator
A Laravel package to generate module structures.
Installs: 9
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 2
Forks: 1
Open Issues: 0
pkg:composer/khaledneam/module-generator
Requires
- php: >=7.3
- illuminate/support: ^7.0|^8.0|^9.0|^10.0|^11.0
README
A Laravel package to quickly generate modular components such as Controllers, Models, Views, Repositories, and Services. This package helps in creating a modular structure in Laravel applications, making the code more organized and manageable.
Features
- Create directories for Controllers, Models, Requests, Routes, Views, Migrations, Tests, Providers, Repositories, and Services.
- Generate Service Providers, Controllers, Views, Routes, Repositories, and Services files with basic templates.
- Automatically register the Service Provider in
config/app.php. - Automatically include module routes in
routes/web.php. - Update
helpers.phpfile to includemodule_pathfunction.
Installation
-
Install the package via Composer:
composer require khaledneam/module-generator dev-main --dev
-
Ensure you also add the Modules directory in the root of your Laravel project
-
If you do not have helpers.php in your app directory, create it as an empty file
-
Update composer.json
{
"autoload": {
"psr-4": {
"Modules\\": "Modules/"
}
},
"files": [
"app/helpers.php"
]
}
Then, update Composer’s autoload files:
composer dump-autoload
Usage To create a new module, use the following Artisan command:
php artisan make:module ModuleName
Example
php artisan make:module Blog
This will create a new module named Blog with the following structure:
Modules/
Blog/
Controllers/
Models/
Requests/
Routes/
Views/
Migrations/
Tests/
Providers/
Repositories/
Services/
Generated Files
Service Provider: Modules/ModuleName/Providers/ModuleNameServiceProvider.php Controller: Modules/ModuleName/Controllers/ModuleNameController.php View: Modules/ModuleName/Views/index.blade.php Route File: Modules/ModuleName/Routes/web.php Repository: Modules/ModuleName/Repositories/ModuleNameRepository.php Service: Modules/ModuleName/Services/ModuleNameService.php
Important Notes
1.Register the Service Provider:
Ensure that you add the newly created module's service provider to the providers array in config/app.php:
'providers' => [ // Other Service Providers Modules\ModuleName\Providers\ModuleNameServiceProvider::class, ],
Contributing
Feel free to fork the repository and submit pull requests. Any contributions are welcome.