Laravel 5 package development

前端 未结 3 1851
生来不讨喜
生来不讨喜 2020-12-04 09:14

I am having trouble to create package in Laravel 5 as workbench has been removed.

As in this thread (How create package in Laravel 5?), Goldorak sugges

相关标签:
3条回答
  • 2020-12-04 09:26

    You could use package on this named packman. composer global require "hadefication/packman", just a simple package creator for Laravel.

    0 讨论(0)
  • 2020-12-04 09:46

    laravel 5 Standards with out workbench.

    Set 1 : install laravel as usual.

    Step 2 : Create package folder and service provider

    In root directory create a folder call "packages" /"vendorName"/"packageName"/src" Eg: root/packages/jai/Contact/src

    now navigate to src folder and create a service provider class: "ContactServiceprovider.php"

    your service provider should extend ServiceProvider which has to implement register method.

    Note:If you want you can have dd("testing"); in boot function and go to step 3 but you have copied the file you might want to create views , routes , config and controllers check link below for that

    Step 3 : add package path in root composer.json in your root composer.json file "jai\Contact\": "packages/jai/Contact/src/" under psr-4

    "psr-4": { "App\": "app/", "Jai\Contact\": "packages/jai/contact/src/", }
    

    Step 4 : add service provider in app config.

    in your root/conifg/app.php under providers add your package service provider to hook your package in.

       'Jai\Contact\ContactServiceProvider',
    

    Step 5 : run composer dump-autoload - make sure there are no errors.

    all done - now you can access your package via url - "yourwebsite/contact"

    Resource from here : https://github.com/jaiwalker/setup-laravel5-package

    0 讨论(0)
  • 2020-12-04 09:50

    Using the laravel Workbench package:

    You can add the illuminate/workbench package in a Laravel 5 by adding to your composer.json:

    "illuminate/workbench": "dev-master"
    

    then add the WorkbenchServiceProvider into your config/app.php file:

    'Illuminate\Workbench\WorkbenchServiceProvider'
    

    Now you need to create the config/workbench.php file since it has been removed from Laravel 5:

    <?php
    
    return [
        /*
        |--------------------------------------------------------------------------
        | Workbench Author Name
        |--------------------------------------------------------------------------
        |
        | When you create new packages via the Artisan "workbench" command your
        | name is needed to generate the composer.json file for your package.
        | You may specify it now so it is used for all of your workbenches.
        |
        */
        'name' => '',
        /*
        |--------------------------------------------------------------------------
        | Workbench Author E-Mail Address
        |--------------------------------------------------------------------------
        |
        | Like the option above, your e-mail address is used when generating new
        | workbench packages. The e-mail is placed in your composer.json file
        | automatically after the package is created by the workbench tool.
        |
        */
        'email' => '',
    ];
    

    Fill your information in this config file then you will be able to use the workbench command:

    php artisan workbench vendor/name
    

    Creating your own package structure

    In this exemple we will create our package called awesome in a packages directory.

    Here is the package structure:

    packages/
      vendor/
        awesome/
          src/
            Awesome.php
          composer.json
    
    • Vendor: your vendor name, typically this is your github username.
    • Awesome: the name of your package
    • src: Where you put the business logic

    To generate a composer.json file you can use this command in the packages/vendor/awesome directory:

    composer init
    

    Now we create a Awesome.php class in the src directory with a simple method:

    <?php namespace Vendor/Awesome;
    
    class Awesome
    {
        public static function printAwesomeness()
        {
            echo 'Awesome';
        }
    }
    

    After that we add the package to the laravel composer.json psr-4 autoloader:

    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Vendor\\Awesome\\": "packages/vendor/awesome/src"
        }
    },
    

    and we dump the composer autoloader

    composer dump-autoload
    

    Now you can use your package everywhere in your laravel 5 project. If you need some laravel specific feature like service provider or view publishing, use them as described in the Laravel 5.0 documentation.

    0 讨论(0)
提交回复
热议问题