Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Jeroen-G/Laravel-Packager
A cli tool for creating Laravel packages
https://github.com/Jeroen-G/Laravel-Packager
boilerplate development hacktoberfest laravel package
Last synced: about 2 months ago
JSON representation
A cli tool for creating Laravel packages
- Host: GitHub
- URL: https://github.com/Jeroen-G/Laravel-Packager
- Owner: Jeroen-G
- License: other
- Created: 2015-06-10T19:30:40.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-10-01T04:32:27.000Z (2 months ago)
- Last Synced: 2024-10-15T13:21:25.814Z (about 2 months ago)
- Topics: boilerplate, development, hacktoberfest, laravel, package
- Language: PHP
- Homepage:
- Size: 242 KB
- Stars: 1,348
- Watchers: 33
- Forks: 189
- Open Issues: 18
-
Metadata Files:
- Readme: readme.md
- Changelog: changelog.md
- Contributing: contributing.md
- License: license.md
Awesome Lists containing this project
- awesome-laravel-framework - Laravel Packager - A CLI tool for creating Laravel packages (Popular Packages)
- awesome-laravel - Laravel Packager - Herramientas para crear paquetes de Laravel. (Paquetes utiles)
- laravel-awesome - Laravel Packager - A repository template for creating Laravel packages (Popular Packages)
- awesome-laravel - Laravel Packager - A CLI tool for creating Laravel packages (Popular Packages)
README
# Laravel Packager
[![Latest Version on Packagist][ico-version]][link-packagist]
[![Total Downloads][ico-downloads]][link-downloads]
[![Build Status][ico-travis]][link-travis]
[![StyleCI][ico-styleci]][link-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. If you like a visual explanation [check out this video by Jeffrey Way on Laracasts](https://laracasts.com/series/building-laracasts/episodes/3).
## Installation
Via Composer
```bash
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`:
```php
JeroenG\Packager\PackagerServiceProvider::class,
```If you do run the package on Laravel 5.5+, [package auto-discovery](https://medium.com/@taylorotwell/package-auto-discovery-in-laravel-5-5-ea9e3ab20518) 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](https://laravel.com/docs/5.5/packages#package-discovery) and instead put in your `AppServiceProvider` something like this:```php
if ($this->app->environment('local')) {
$this->app->register('JeroenG\Packager\PackagerServiceProvider');
}
```Optional you can publish the configuration to provide a different service provider stub. The default is [here](https://github.com/jeroen-g/packager-skeleton).
```bash
php artisan vendor:publish --provider="JeroenG\Packager\PackagerServiceProvider"
```## Available commands
### New
**Command:**
```bash
php artisan packager:new my-vendor my-package
```**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 and creates a service provider.**Options:**
```bash
php artisan packager:new my-vendor my-package --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.```bash
php artisan packager:new my-vendor/my-package
```
Alternatively you may also define your vendor and name with a forward slash instead of a space.**Remarks:**
The new package will be based on [this custom skeleton](https://github.com/jeroen-g/packager-skeleton). If you want to use a different package skeleton, you can either:
- (A) publish the configuration file and change the default skeleton that will be used by all `packager:new` calls.
- (B) use the flag `--skeleton="http://github.com/path/to/archive/master.zip"` with your own skeleton to use the given skeleton for this one run instead of the one in the configuration.### Get & Git
**Command:**
```bash
php artisan packager:get https://github.com/author/repository
php artisan packager:git https://github.com/author/repository
```**Result:**
This will register the package 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.**Options:**
```bash
php artisan packager:get https://github.com/author/repository --branch=develop
php artisan packager:get https://github.com/author/repository my-vendor my-package
php artisan packager:git https://github.com/author/repository my-vendor my-package
```
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.### Tests
**Command:**
```bash
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:
```xml./tests/packages
```
**Options:**
```bash
php artisan packager:tests my-vendor my-package
```**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.### List
**Command:**
```bash
php artisan packager:list
```**Result:**
An overview of all packages in the `/packages` directory.**Options:**
```bash
php artisan packager:list --git
```
The packages are displayed with information on the git status (branch, commit difference with origin) if it is a git repository.### Remove
**Command:**
```bash
php artisan packager:remove my-vendor my-package
```**Result:**
The `my-vendor\my-package` package is deleted, including its references in `composer.json` and `config/app.php`.### Publish
**Command:**
```bash
php artisan packager:publish my-vendor my-package https://github.com/my-vendor/my-package
```**Result:**
The `my-vendor\my-package` package will be published to Github using the provided url.### Check
**Command:**
```bash
php artisan packager:check my-vendor my-package
```**Result:**
The `my-vendor\my-package` package will be checked for security vulnerabilities using SensioLabs security checker.**Remarks**
You first need to run```bash
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:
```
CURL_VERIFY=false
```
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.## Issues with timeout
If you are having problems with timeouts when creating new packages, you can now change the config variable timeout in config/packager.php to fix this.## Changelog
Please see [changelog.md](changelog.md) for what has changed recently.
## Contributing
Please see [contributing.md](contributing.md) for details and a todolist.
## Credits
- [JeroenG][link-author]
- [All Contributors][link-contributors]## License
The EU Public License. Please see [license.md](license.md) for more information.
[ico-version]: https://poser.pugx.org/jeroen-g/laravel-packager/v/stable?format=flat-square
[ico-downloads]: https://img.shields.io/packagist/dt/jeroen-g/laravel-packager.svg?style=flat-square
[ico-travis]: https://img.shields.io/travis/Jeroen-G/laravel-packager/master.svg?style=flat-square
[ico-styleci]: https://styleci.io/repos/37218114/shield[link-packagist]: https://packagist.org/packages/jeroen-g/laravel-packager
[link-downloads]: https://packagist.org/packages/jeroen-g/laravel-packager
[link-travis]: https://travis-ci.org/Jeroen-G/laravel-packager
[link-styleci]: https://styleci.io/repos/37218114
[link-author]: https://github.com/Jeroen-G
[link-contributors]: ../../contributors