All Notable changes to laravel-modules
will be documented in this file.
- @omerbaflah Fixes Invokable Controller Stub
- @solomon-ochepa Added create module:make-class command
- @dcblogdev Update controller, service, helper, and action methods
- @omerbaflah Update service stubs
- @omerbaflah Update action stubs
- @AbdulkarimOmer Added invokable option into make-controller command
- @dcblogdev Updated vite-module-loader.js to handle case when a modules does not have a vite.config.js file
- @alissn Added direction option to command module:seed
- @dcblogdev added make-event-provider command, modules come with event as default now
- @solomon-ochepa Remove custom namespaces from generator [factory and seeder]
- @dcblogdev added make-action command
- @dcblogdev added make-cast command
- @dcblogdev added make-enum command
- @dcblogdev added make-exception command
- @dcblogdev added make-helper command
- @dcblogdev added make-interface command
- @dcblogdev added make-scope command
- @dcblogdev added make-trait command
- @dcblogdev added missing return type for make-service command
- @dcblogdev updated config
- @dcblogdev Force the config replacement option for composer 'APP_FOLDER_NAME', to be handled even when its not present.
- @solomon-ochepa Path Namespace - generate a well-formatted StudlyCase namespace from paths
- @korridor Fixed public path for octane setup
- @dcblogdev added invokable and force options into make-service command
- @dcblogdev Restrict fresh migration to module scope
- @kowston Changed wording for command descriptions to be consistent
- @alissn change package version to Pretty on php artisan about
- @alissn fix stubs composer for app_folder
- @dcblogdev added make-service command
- @alissn check command has direction option, load module with 'priority'
- @dcblogdev Updated config to use namespace and path for seeders and factories
- @solomon-ochepa Updated vendor / author keys for config/.env
- @enterprime Corrected factories to Factories and added cache options to ENV
- @dcblogdev Added return type array definition
- @dcblogdev Added test to confirm author details
- @enterprime Passing the values of vendor, author's name, and author's email in a line during module creation.
- @enterprime control the author through the .env configuration file.
- @enterprime fixed module:migrate-rollback command
- @alissn add RouteServiceProvider Configuration in Generator
- @alissn added Laravel Modules package version to command 'about'
- @dcblogdev Added view:make command to generate views
- @alissn Run command php-cs-fixer fix
- @solomon-ochepa updated route-provider.stub to loose the optional namespace
- @Subtixx Fix Issue #1752 - Hardcoded string + undefined variable
- @jaymeh fix: Failed to load module script for static assets such as images
- @alissn Fixing failing tests
- @dcblogdev ensure class_exists for both Capital and lower case namespaces
- @dcblogdev create database folders by default
- @dcblogdev set route service provider to use blank namespace by default
- @dcblogdev updated tests for compatability with PhpUnit 12
- @dcblogdev added replacement placeholders in config for API stubs
- @dcblogdev updated vite to rename placeholder with module name
- @dcblogdev Added support for Laravel 11
- @solomon-ochepa updated API route stub to use controller
- @solomon-ochepa updated config comments
- @alissn rearrange Command Classes into Folders and Update Namespace Structure
- @alissn delete command module:migrate-fresh
- @alissn Fixing Case of tests/Unit and tests/Feature
- @alissn Updated commands to use Laravel Prompt
- @dcblogdev updated event stub to include Dispatchable and InteractsWithSockets traits
- @alissn Add command module prune
- @azim-kordpour Add PHPDoc static to all methods in Module facade
- @dcblogdev Reverted config to use
App
andDatabase
namespace / folders by default - @alissn Command Synchronization and Alphabetical Sorting in ConsoleServiceProvider
- @fpermana Update ObserverMakeCommand.php
- @alissn revert extend class to ShowModelCommand
- @benjaminniess Fix ModelShowCommand extends property
- @dcblogdev updated module:publish-config to a dynamic path to the service provider
- @solomon-ochepa updated multiple & config stubs to follow modern laravel standards
- @dcblogdev updated enabled
$MODULE_NAMESPACE$
&$CONTROLLER_NAMESPACE$
placeholders to be used inside stubs - @hungthai1401 updated rule stub
- @dcblogdev added support for using modules inside the main
vite.config.js
file nWidart#1682 - @dcblogdev added option to generate a factory by using the flag
-f
when generating a model - @hungthai1401 added implicit rule nWidart#1664
- reordered config commands and added missing observer command
- @JaberWiki Added Include an optional flag
subpath
for rolling back a module's specific migration file #1626 - @sergiy-petrov Added support for testing GitHub actions against PHP versions 8.2 and 8.3. #1624
- @hanieas Added make Observer command. #1623
- @alissn Add phpdoc to Module facade class for IDE auto-completion. #1589
- @aryala7 Add command to create broadcasting channel #1599
- @Rattone Updated stubs for command from
name
tosignature
#1625 - @moeen-basra Remove the unused Factory import #1596
- @moeen-basra Replace the \Config::get with config function #1596
- @aryala7 Changed disable module Command to accept array of modules instead of single module to disable #1591
- Minimum PHP version to 8.1 for supporting Laravel 10
- Laravel 10 version
- Increased PHPUnit to 10.0
- Increased Mockery to 1.5
- @dev-karpenko updated get attributes cache #1526
- @alissn implement command check lang folder, and show missing files #1496
- @kmizzi Use AsCommand in lieu of defaultName for ModelShowCommand #1503
- @alissn add command show model information #1429
- @JaberWiki add optional flag for seeder or request in model generator command #1431
- @alissn updated command style to new version of artisan #1430
- @ChauDucGiang updated Feature/cache driver #1443
- @ajayfroiden fixed module:disable #1438
- @inovar-tecnologia fixed DisableCommand.php#1435
- 9.02 - 9.0.3 have been removed due to savere performance problems
- Added option to publish stubs for modules
php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider" --tag="stubs"
- Minimum PHP version to 8.0 for supporting Laravel 9
- Laravel 9 version
- Increased PHPUnit to 9.5
- Increased Mockery to 1.4
- Fixed test replaced expectsEvents with event fakes
- The ability to override commands via config file.
- Incorrectly placed config key
- Class name when special characters are used in the rule name
- Fix error on anonymous migration
- Changed
View/Component
toView/Components
- Updated test snapshots for the MakeCommand test snapshots
- Command stub signature from
signature
toname
- Revert PR1171 which causes tests to fail
- Added commands make class component and make view component
- Test against php 8.0
- Merge config in register method
- Added optional controller flag to model generator command
- Set module for make-controller command
- Added tests for generating controller in model generator command
- Added test for check if migration and controller flag are both present
- Laravel mix v6 support
- New
module:make-component
command to generate laravel components
- Fixed bug:
Target class [Nwidart\Modules\Commands\] does not exist.
- Command management via configuration file
- Laravel 8 Factories compatibility
- New improved way to define controller types.
--web
,--api
and--plain
options. - New configuration option to make compose run in silent mode
- New generated commands now use the
$signature
property instead of$name
- Fixed issue where
order
was used instead ofpriority
- Laravel 8 support
- Update
ListenerMakeCommand
to properly use the--events
option
- Added return statements in artisan commands. Helpful to validate if something was successfully ran. (#1026)
- Update JsonResource namespace, using the new
Illuminate\Http\Resources\Json\JsonResource
. (#969) - Enable command returns the status code (#978)
- Removing module service provider from composer.json stub (#996)
- Fixed custom stub path issue. Replacing a hardcoded stub path. (#1016)
- Controller return type changed to
Illuminate\Contracts\Support\Renderable
. (#1020) - Change bigIncrements method to id (#1029)
- Adding force option for module:seed (#1030)
php artsian module:enable
(without any arguments) will enable all modulesphp artsian module:disable
(without any arguments) will disable all modules- Updating Laravel Mix version as well as cross-env.
- Laravel 7.0 support
- Properly guessing the namespace from the path (in
GeneratorPath
class) - Fixing generation of resource file if the resource has been disabled to generate
- Fix when using a custom service provider namespace, namespace is correctly referenced in module.json and compose.json
- Fix when using custom service provider namespace, module path is correctly referenced in the
RouteServiceProvider
andModuleServiceProvider
- Fix when using a custom path for controllers in the controller stub
- Added new
module:delete
command
- Add optional path parameter to
module_path
helper (PR#861) - The default path of the
module_statuses.json
file has been moved to the Application's base path. This is to improve its visibility and the fact that it can be committed by default. - Throw an exception when no proper activator class was configured
-
New File Activator feature. PR #790 from @ryssbowh
This feature changes how modules are activated and de-activated. Currently module statuses are stored on disk, this features adds the possibility of storing this status information in a database.
Use the command
php artisan module:v6:migrate
to have old modules active status migrated to the new system.
-
Alternate way to define the namespace of modules in PR #776 by @daison12006013
This allows to have the content of the module under an
src/
folder for example. -
BREAKING New way to handle active and inactive modules.
Modules don't store their active status in their module.json file anymore, but in a file under the storage folder. Run
php artisan module:v6:migrate
to use the new system. -
BREAKING Renamed method
enabled
toisEnabled
in\Nwidart\Modules\Module
. -
BREAKING Renamed method
disabled
toisDisabled
in\Nwidart\Modules\Module
. -
BREAKING Renamed method
enabled
toisEnabled
in\Nwidart\Modules\FileRepository
. -
BREAKING Renamed method
disabled
toisDisabled
in\Nwidart\Modules\FileRepository
. -
BREAKING Removed the
__get
magic method on the\Nwidart\Modules\Module
class. Useget()
orjson()->get()
instead. -
The
module:make-listener
command now correctly uses the namespace configuration -
The generated Factories now has type hints for the
\Illuminate\Database\Eloquent\Factory
class -
Improved foreign key constraint generation
-
Exception handling in the
SeedCommand
has been improved
artisan module:route-provider
has a--force
option to overwrite existing file
- Fixing the
RouteServiceProvider
generation to properly use theroutes/web
androutes/api
stubs - Replacing
@stop
with@endsection
in the view stub file Module
class does not extend Laravel's Service Provider class anymore
- Laravel 5.8 support
- Deprecated string and array methods have been replaced
- Fixed caching not being cleared after disabling and enabling modules
- Update Route Provider stub to not affect the root namespace of the URL generator (#727)
- PHP 7.1 support
- Updated to laravel mix 4
- Add
--api
argument tomodule:make-controller
command - Seeding modules outside out
Modules
namespace
- New way of handling routes by default using a RouteServiceProvider (instead of start.php)
- Laravel 5.7 support
- Allow class resolution on short name and abstract
module:seed
accepts a--class
option
- Added the ability to set a sub-namespace to controllers
module:make-controller Api\\TestController
module:update
command has now the possibility to update all modules at once- Fixing commented code for Laravel Mix
- Added possibility to update all modules at once if any not specified (PR #523)
- Mix: Fix css relative urls by changing the route folder (PR #521)
- Mix: Prevents every build from deleting previous Mix config file (PR #521)
- Laravel mix configuration (https://nwidart.com/laravel-modules/v3/basic-usage/compiling-assets)
- Allow symlinks in module path
- Returns the parameter
--class
to theSeedCommand
. - Generate folders recursively
- Removing link that has become a 404
- Fixed seed command exception typehint
- Removed the optimize command on the
module:make-migration
command
- Update publish commands to use the new API to get all enabled modules (PR #483 )
- Added support for laravel 5.6
- Using phpunit 7
- BC:
Repository
class: renamedenabled
toallEnabled
- BC:
Repository
class: renameddisabled
toallDisabled
- BC:
Repository
class: renamedactive
toenabled
- BC:
Repository
class: renamednotActive
todisabled
- Dropped php 7.0 support
- BC:
Module
class: Deprecatedactive()
method, useenabled()
- BC:
Module
class: DeprecatednotActive()
method, usedisabled()
- BC:
Repository
class: DeprecatedaddPath()
method, useaddLocation()
- BC:
Repository
class: Deprecatedget()
method, usefind()
- BC:
Repository
class: DeprecatedgetUsed()
method, usegetUsedNow()
- Rename the
before
method toboot
in theRouterServiceProvider
stub file - Fixing caching issue if modules were loaded from a different directory
- Fixing how modules are loaded from vendor directory (#423 #417)
- Update to Mockery 1.0
- use default file stubs only if override does not exists
- Fix non well formed numeric value in seed command
- Ability to customise the destination folder & namespace of a generated class
- Added
php artisan module:migrate-status
command config_path()
helper for Lumen- Added views tag to view config in ServiceProvider
- added package auto discovery for laravel 5.5 in generated module
composer.json
- Adding the ability to correctly load modules from multiple locations, together
- Custom seeder path now also used in the
module:seed
command
- added config_path helper to helpers for Lumen support
- updated readme on how to install laravel-modules in Lumen
- Making the path to migrations for
loadMigrationsFrom()
call dynamic based of configuration - Making the factory path dynamic for master service provider & make-factory command
- Make the route file location dynamic in start.php based of
stubs.files.routes
- Making the route path dynamic on the route service provider based of
stubs.files.routes
- New structure in configuration to set which folders will be generated on
module:make
(old format still supported) - Setting new sensible defaults to what folders to generate by default.
- Change the assets directory default location
resources/assets
- Setting a default value for
modules.paths.modules
configuration key
- New
module:make-resource
command to generate resource classes - New
module:make-test
command to generate test classes
- Improved error output of the
module:seed
command - Marking methods that served as proxies in
Module
andRepository
classes as deprecated for next major - Fixed
module:make
andmodule:make-provider
to generate the correct master service provider - Tests: tests are now using
spatie/phpunit-snapshot-assertions
to make sure the generated files have the correct content - Adding a sync option to the
module:make-job
command to make a synchronous job class - Changed
module:make-event
command to allow duck typed events (not type hinted event class) - Changed
module:make-listener
to allow a--queued
option to make the event queueable - Changed
module:make-listener
command to not use the full class typehint when class was previous imported
- Ability to ignore some folders to generate
- Creating an module:unuse command to forget the previously saved module
- New command to generate Policy classes
- New command for creating factories
- New command for creating rules
- new
public_path
helper for Lumen
- Refactored class names that generate something to be fully consistent
- Fixed class namespace to
Repository
inContractsServiceProvider
- Lumen compatibility with new way to register providers
- Register module migrations
- Fixed issue with
module:migrate-refresh
command - Improved module loading of their service providers. Using laravel caching system. Allowing usage of deferred providers.
- Fixed path to module factories
- Support Laravel 5.5
- Allow migrate-refresh command to be run without module argument
- Module name was added to the module enable and disable events
- Only run composer require on the module:update command if there's something to require
- Fixing lumen support
- Laravel Lumen support
- Update dev dependencies grumphp and phpcsfixer to latest versions
- The
make:model
command with the-m
flag to create the associated migration is now using a current migration file name
- Throw an exception if asset name structure was not correct when using
{!! Module::asset() !!}
- Create the module used file if non existent. Will provide for a better error message if module is omitted in console commands without a module:use.
- More flexibility to the
json()
method, while keeping the performance improvements.
- Improving performance by only instantiating Json class for the module.json file once
- Added support for generic git hosts
- Using
resource_path
to register module views - Changed the method to load additional eloquent factory paths
- A
--migration
flag to themodule:make-model
command to generate the migration file with a model - Factories are now also defined in the master service providers. This is used in the
module:make
command without the--plain
flag, or usingmodule:make-provider
with the--master
flag. module_path()
helper function.
- The default location of event listeners is now in
Listeners/
, fromEvents/Handlers
- Fixed the
--plain
on themake:module
command, to not include a service provider in themodule.json
file as it's not generated. - Add command description to the
GenerateNotificationCommand
.
- Added the
Macroable
trait to theModule
class.
- The
collections
method now accepts an optional parameter to get modules by status, in a laravel collection. - Allow laravel
5.5.*
to be used.
module:update
: Copy over the scripts key to main composer.json file- Add a
--subpath
option to migrate command module:update
: Install / require all require & require-dev package at once, instead of multiple calls to composer require.module:publish-config
command now uses the namespace set up in the configuration file.
module:update
command now also takes therequire-dev
key into account- Making the
$migrations
parameter optional ongetLastBatchNumber()
- The module list command (
module:list
) now returns the native module name
- Fixed issues with route file location in
start.php
- Add checking for failure to parse module JSON
- Support for Laravel 5.4
- Adding show method on resource controller
- Added check for cached routes to not load them multiple times
- Module requirements (PR #117)
- Added
Macroable
trait toModule
class (PR #116)
- Added missing import of the
Schema
facade on migration stubs - A default plain migration will be used if the name was not matched against a predefined structure (create, add, delete and drop)
- Add tests for all the different migration structures above
- Fix: respecting order in reverse migrations (PR #98)
- Fix:
module:reset
andmodule:migrate-rollback
didn't have--database
option (PR #88) - Fix:
Module::asset()
, removed obsolete backslash. (PR #91)
module:make-notification
command to generate a notification class
- Usage of the
lists()
method on the laravel collection has been removed in favor ofpluck()
- Modules can now overwrite the default migration and seed paths in the
module.json
file
- Generated emails are now generated in the
Emails
folder by default
- Ability to set default value on the config() method of a module.
- Mail: Setting default value to config. Using that as the namespace.
- Using PSR2 for generated stubs
- Generation of Mailable classes
- Using stable version of laravelcollective/html (5.3)
- Using stable development of laravelcollective/html
- Adding
module:make-job
command to generate a job class - Adding support for Laravel 5.3
- Added force option to module:seed command
- Experimental Laravel 5.3 support
- Make sure the class name has
Controller
appended to it as well. Previously only the file had it suffixed.
- Dependencies:
pingpong/support
andpingpong/generators
- Adding a plain option to the generate controller command
- Generate controller command now generates all resource methods
- Module generation namespace now works with
StudlyCase
(Issue #14) - No module namespace fix (#13)
- Using new service provider stub for module generation too
Initial release