lassehaslev / laravel-modules
Installs: 102
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 1
Type:laravel-plugin
Requires
Requires (Dev)
- orchestra/testbench: 3.5.x
This package is not auto-updated.
Last update: 2024-11-23 20:47:55 UTC
README
Use Package development in your local projects.
Structure your applications functionality into modules and autoload the packages ServiceProviders.
Install and Setup
-
Run
composer require lassehaslev/laravel-modules
. -
(Not needed in laravel 5.5) Add the following line to
providers
inconfig/app.php
LasseHaslev\LaravelModules\Providers\ServiceProvider::class,
-
Ok, this step is very important: Add the following to your projects composer.json. If you do not, we cannot find out where your modules are loaded from.
"extra": { ... "merge-plugin": { "include": [ "Modules/*/composer.json" ], "recurse": true, "replace": false, "merge-dev": true, "merge-extra": false, "merge-extra-deep": false } }
-
Now, run
php artisan modules:make-folder
to create modules folder.
Discover packages
Run php artisan package:discover-modules
to find all packages.
This will discover vendor packages and package modules.
You should replace the discover function in composer to auto update every time you run a composer command.
"post-autoload-dump": [
...
"@php artisan package:discover-modules"
]
Remember to run this command every time you create a new module.
Create local packages
I recommend you to use LasseHaslev/laravel-package-template to get a flying start to your local package.
Go to LasseHaslev/laravel-package-template quick package setup.
Configuration
If you deside to change the place where your modules lives you must change path in composer.json extra.merge-plugin.include
.
You must also overwrite the config for modules
Config::set( 'modules.path', base_dir( 'your/new/path' ) )
Development
# Install dependencies composer install # Install for running automatic tests yarn # Make Modules folders in orcestra to make tests work mkdir vendor/orchestra/testbench-core/laravel/Modules # Run one time npm run test # Automaticly run test on changes npm run dev