简体   繁体   English

Laravel 5软件包开发

[英]Laravel 5 package development

I am having trouble to create package in Laravel 5 as workbench has been removed. 由于workbench已删除,我无法在Laravel 5中创建软件包。

As in this thread ( How create package in Laravel 5? ), Goldorak suggest that we have to create our own package structure ourselves. 就像在这个线程中( 如何在Laravel 5中创建包? )一样,Goldorak建议我们必须自己创建自己的包结构。

So, how can I create the workbench manually and get everything ready for package development? 那么,如何才能手动创建工作台并使一切准备好进行软件包开发呢?

Using the laravel Workbench package: 使用laravel Workbench软件包:

You can add the illuminate/workbench package in a Laravel 5 by adding to your composer.json : 您可以通过添加到composer.json来在Laravel 5中添加illuminate/workbench包:

"illuminate/workbench": "dev-master"

then add the WorkbenchServiceProvider into your config/app.php file: 然后将WorkbenchServiceProvider添加到您的config/app.php文件中:

'Illuminate\Workbench\WorkbenchServiceProvider'

Now you need to create the config/workbench.php file since it has been removed from Laravel 5: 现在您需要创建config/workbench.php文件,因为它已从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: 在此配置文件中填写您的信息,然后您将能够使用workbench命令:

php artisan workbench vendor/name

Creating your own package structure 创建自己的包结构

In this exemple we will create our package called awesome in a packages directory. 在此示例中,我们将在packages目录中创建名为awesome的包。

Here is the package structure: 这是包的结构:

packages/
  vendor/
    awesome/
      src/
        Awesome.php
      composer.json
  • Vendor : your vendor name, typically this is your github username. 供应商 :您的供应商名称,通常是您的github用户名。
  • Awesome : the name of your package 很棒 :您的包裹名称
  • src : Where you put the business logic src :放置业务逻辑的位置

To generate a composer.json file you can use this command in the packages/vendor/awesome directory: 要生成composer.json文件,可以在packages/vendor/awesome目录中使用以下命令:

composer init

Now we create a Awesome.php class in the src directory with a simple method: 现在,我们使用一个简单的方法在src目录中创建一个Awesome.php类:

<?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: 之后,我们将该包添加到laravel composer.json psr-4自动加载器中:

"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. 现在,您可以在laravel 5项目中的任何地方使用软件包。 If you need some laravel specific feature like service provider or view publishing, use them as described in the Laravel 5.0 documentation . 如果您需要某些laravel特定功能,例如服务提供商或视图发布,请按照Laravel 5.0文档中的描述使用它们。

laravel 5 Standards with out workbench . laravel 5标准,没有工作台

Set 1 : install laravel as usual. 设置1:照常安装laravel。

Step 2 : Create package folder and service provider 步骤2:建立套件资料夹和服务提供者

In root directory create a folder call "packages" /"vendorName"/"packageName"/src" Eg: root/packages/jai/Contact/src 在根目录中,创建一个文件夹调用“ packages” /"vendorName"/"packageName"/src" Eg: root/packages/jai/Contact/src

now navigate to src folder and create a service provider class: "ContactServiceprovider.php" 现在,导航到src文件夹并创建一个服务提供程序类:“ ContactServiceprovider.php”

your service provider should extend ServiceProvider which has to implement register method. 您的服务提供商应扩展必须实现注册方法的ServiceProvider。

Note:If you want you can have dd("testing"); 注意:如果需要,可以使用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 在启动功能并转到第3步,但是您已复制了可能要创建视图,路由,配置和控制器的文件,请检查下面的链接

Step 3 : add package path in root composer.json in your root composer.json file "jai\\Contact\\": "packages/jai/Contact/src/" under psr-4 步骤3:在根composer.json文件"jai\\Contact\\": "packages/jai/Contact/src/" psr-4下的"jai\\Contact\\": "packages/jai/Contact/src/"中的根composer.json中添加软件包路径

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

Step 4 : add service provider in app config. 第4步:在应用程序配置中添加服务提供商。

in your root/conifg/app.php under providers add your package service provider to hook your package in. 在提供程序的root / conifg / app.php中,添加您的包服务提供程序以将您的包挂入。

   'Jai\Contact\ContactServiceProvider',

Step 5 : run composer dump-autoload - make sure there are no errors. 步骤5:运行composer dump-autoload-确保没有错误。

all done - now you can access your package via url - "yourwebsite/contact" 全部完成-现在您可以通过url访问您的软件包- "yourwebsite/contact"

Resource from here : https://github.com/jaiwalker/setup-laravel5-package 来自这里的资源: https : //github.com/jaiwalker/setup-laravel5-package

You could use package on this named packman . 您可以在这个名为packman的包上使用package。 composer global require "hadefication/packman" , just a simple package creator for Laravel. composer global require "hadefication/packman" ,这是composer global require "hadefication/packman"的简单包装创建者。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM