JeroenNoten / Laravel-PSP by JeroenNoten

Laravel Package Service Provider for autoloading dependencies of packages in development
34
7
4
Package Data
Maintainer Username: JeroenNoten
Maintainer Contact: jeroennoten@me.com (Jeroen Noten)
Package Create Date: 2015-10-12
Package Last Update: 2016-06-27
Language: PHP
License: MIT
Last Refreshed: 2024-04-18 15:23:59
Package Statistics
Total Downloads: 34
Monthly Downloads: 2
Daily Downloads: 0
Total Stars: 7
Total Watchers: 4
Total Forks: 1
Total Open Issues: 0

For Laravel 5.1 and older, use the 1.0 branch

Laravel Package Service Provider

Developing packages in Laravel 5 is easy: just create a subdirectory for your package in a directory packages, add the necessary autoload details in your composer.json file and you're good to go. Unless... your package has dependencies on other packages. Then you need to require_once the vendor/autoload.php file of each package. That is exactly what this package does. Of course, you can also use more heavy Laravel package development tools, such as Studio or Laravel Packager, but if you (like me) don't really need all that additional stuff, you can use this package.

Installation

  1. Require the package using composer:

    composer require jeroennoten/laravel-psp
    
  2. Add the service provider to the providers in config/app.php:

    JeroenNoten\LaravelPsp\ServiceProvider::class,
    
  3. Create an empty packages directory in the root of your project.

Now you're ready to create your awesome packages.

Creating A New Package

  1. In the packages directory, create a subdirectory for your new package, e.g. packages/your-package.

  2. In your composer.json file, define the autoloading properties for your package like so (assuming that you use PSR-4 autoloading from the src subdirectory in your package directory):

    "autoload": {
        "psr-4": {
            "YourVendorNamespace\\YourPackageNameSpace\\": "packages/your-package/src"
        }
    },
    

Done! You're now ready to develop your package.

Note that this package assumes that your packages reside in a directory called packages. This is not (yet) configurable.