Download the PHP package diego-rlima/artisan-make-file-location without Composer
On this page you can find all versions of the php package diego-rlima/artisan-make-file-location. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download diego-rlima/artisan-make-file-location
More information about diego-rlima/artisan-make-file-location
Files in diego-rlima/artisan-make-file-location
Package artisan-make-file-location
Short Description Ability to change the namespace/location of the files generated by the "artisan make" commands.
License MIT
Informations about the package artisan-make-file-location
diego-rlima/artisan-make-file-location
Ability to change the namespace/location of the files generated by the "artisan make" commands.
Requirements
This package requires Laravel 5.4 or later and PHP 7.1.0 or later.
Installation
For Laravel 5.4, you must register the service provider of this package.
Add the code below in the providers section of your config/app.php
file.
Using
You can use all "artisan make" commands as usual. But now, you can add the options --prefix and --suffix to change the namespace of your files.
Note: For files that do not have namespace (like migrations), only the prefix can be used.
Prefix
This will output the file with the namespace App\Units\Products\Controllers.
Suffix
This will output the file with the namespace App\Http\Controllers\Products.
Both Prefix and Suffix
This will output the file with the namespace App\Units\Controllers\Products.
Customizing
The package is configured to be compatible with the Laravel standard, but allowing you to set prefixes and suffixes. However, you can replace the Laravel pattern with your own.
Publish the config using the following command:
Now you have a config/amfl.php file. The settings are divided between files that have namespaces and files that they do not have.
For files with namespace, the {root} normally will be replaced by the "App" namespace. Of curse, {prefix} and {suffix} will be replaced by the prefix and suffix you choose.
In the test files, {root} will be changed to "Tests" namespace. These files also have namespace variation. The {type} will be changed to "Unit" or "Feature".
For files without namespace, the {root} will be replaced by the root directory of application. The {prefix} and {name} will be replaced by the prefix and the file name, respectively.
Important: If you are going to create the migrations in another folder, make sure the folder is already created, or the migration will not be created. This is due to the way the original command was written.
Making prefixes/suffixes required
All you have to do is add |required
to the file configuration. Eg.:
Defining a default value for prefixes/suffixes
Just add |default:YouDefaultValue
to the file configuration. Eg.:
Note: Default values will not be applied if prefix/suffix is required.
Extending other commands
Do you want to use prefixes / suffixes in your commands or third-party commands? Just do it!
Let's assume that your command class looks like the following:
You need to change the class so that it can retrieve the pattern we set. It will be similar to:
If your command will generate a file without namespace, the code must change a bit. It should look like:
In your AppServiceProvider, extend the list of commands.
Put the pattern configuration of the command inside your "config/amfl.php" file.
List of commands supported
Command | Supports prefix | Supports suffix | Min. Laravel Version |
---|---|---|---|
make:channel | yes | yes | 5.6 |
make:command | yes | yes | 5.4 |
make:controller | yes | yes | 5.4 |
make:event | yes | yes | 5.4 |
make:exception | yes | yes | 5.6 |
make:factory | yes | no | 5.6 |
make:job | yes | yes | 5.4 |
make:listener | yes | yes | 5.4 |
make:mail | yes | yes | 5.4 |
make:middleware | yes | yes | 5.4 |
make:migration | yes | no | 5.4 |
make:model | yes | no | 5.4 |
make:notification | yes | yes | 5.4 |
make:policy | yes | yes | 5.4 |
make:provider | yes | yes | 5.4 |
make:request | yes | yes | 5.4 |
make:resource | yes | yes | 5.6 |
make:rule | yes | yes | 5.6 |
make:seeder | yes | no | 5.4 |
make:test | yes | yes | 5.4 |