A cli tool for creating Laravel packages.

V2.1.3 2018-10-30 13:06 UTC


Latest Version on Packagist Total Downloads Build Status StyleCI

This package provides you with a simple tool to set up a new package and it will let you focus on the development of the package instead of the boilerplate.


Via Composer

$ composer require jeroen-g/laravel-packager --dev

If you do not run Laravel 5.5 (or higher), then add the service provider in config/app.php:


If you do run the package on Laravel 5.5+, package auto-discovery takes care of the magic of adding the service provider. Be aware that the auto-discovery also means that this package is loaded in your production environment. Therefore you may disable auto-discovery and instead put in your AppServiceProvider something like this:

if ($this->app->environment('local')) {

Optional you can publish the configuration to provide a different service provider stub. The default is here.

$ php artisan vendor:publish --provider="JeroenG\Packager\PackagerServiceProvider"

Available commands



$ php artisan packager:new MyVendor MyPackage

Result: The command will handle practically everything for you. It will create a packages directory, creates the vendor and package directory in it, pulls in a skeleton package, sets up composer.json, creates a service provider, registers the package in config/app.php and the app's composer.json.


$ php artisan packager:new MyVendor MyPackage --i
$ php artisan packager:new --i

The package will be created interactively, allowing to configure everything in the package's composer.json, such as the license and package description.

Remarks: The new package will be based on this custom skeleton.

Get & Git


$ php artisan packager:get
$ php artisan packager:git

Result: This will register the package in config/app.php and in the app's composer.json file. If the packager:git command is used, the entire Git repository is cloned. If packager:get is used, the package will be downloaded, without a repository. This also works with Bitbucket repositories, but you have to provide the flag --host=bitbucket for the packager:get command.


$ php artisan packager:get --branch=develop
$ php artisan packager:get MyVendor MyPackage
$ php artisan packager:git MyVendor MyPackage

It is possible to specify a branch with the --branch option. If you specify a vendor and name directly after the url, those will be used instead of the pieces of the url.



$ php artisan packager:tests

Result: Packager will go through all maintaining packages (in packages/) and publish their tests to tests/packages. Add the following to phpunit.xml (under the other testsuites) in order to run the tests from the packages:

<testsuite name="Packages">
    <directory suffix="Test.php">./tests/packages</directory>


$ php artisan packager:tests MyVendor MyPackage

Remarks: If a tests folder exists, the files will be copied to a dedicated folder in the Laravel App tests folder. This allows you to use all of Laravel's own testing functions without any hassle.



$ php artisan packager:list

Result: An overview of all packages in the /packages directory.



$ php artisan packager:remove MyVendor MyPackage

Result: The MyVendor\MyPackage package is deleted, including its references in composer.json and config/app.php.



$ php artisan packager:publish MyVendor MyPackage

Result: The MyVendor\MyPackage package will be published to Github using the provided url.



$ php artisan packager:check MyVendor MyPackage

Result: The MyVendor\MyPackage package will be checked for security vulnerabilities using SensioLabs security checker.

Remarks You first need to run

$ composer require sensiolabs/security-checker

Issues with cURL SSL certificate

It turns out that, especially on Windows, there might arise some problems with the downloading of the skeleton, due to a file regarding SSL certificates missing on the OS. This can be solved by opening up your .env file and putting this in it:


Of course this means it will be less secure, but then again you are not supposed to run this package anywhere near a production environment.


DelveFore started to work on a cool project to use various Artisan make: commands for the packages, check it out!


Please see for what has changed recently.


Please see for details and a todolist.



The EU Public License. Please see for more information.