Laravel 5 软件包开发

2022-08-30 13:51:32

我在Laravel 5中创建软件包时遇到问题,因为已被删除。workbench

就像这个线程(如何在Laravel 5中创建包?)一样,Goldorak建议我们必须自己创建自己的包结构。

那么,如何手动创建工作台并为包开发做好一切准备呢?


答案 1

使用 laravel Workbench 包:

您可以通过添加以下内容在Laravel 5中添加软件包:illuminate/workbenchcomposer.json

"illuminate/workbench": "dev-master"

然后将 WorkbenchServiceProvider 添加到您的文件中:config/app.php

'Illuminate\Workbench\WorkbenchServiceProvider'

现在你需要创建文件,因为它已经从Laravel 5中删除了:config/workbench.php

<?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' => '',
];

在此配置文件中填写您的信息,然后您将能够使用工作台命令:

php artisan workbench vendor/name

创建您自己的包结构

在这个例子中,我们将在软件包目录中创建名为 awesome 的软件包。

下面是包结构:

packages/
  vendor/
    awesome/
      src/
        Awesome.php
      composer.json
  • 供应商:您的供应商名称,通常这是您的 github 用户名。
  • 真棒:您的软件包的名称
  • src:将业务逻辑放在何处

要生成 composer.json 文件,您可以在以下目录中使用此命令:packages/vendor/awesome

composer init

现在,我们用一个简单的方法在目录中创建一个类:Awesome.phpsrc

<?php namespace Vendor/Awesome;

class Awesome
{
    public static function printAwesomeness()
    {
        echo 'Awesome';
    }
}

之后,我们将软件包添加到laravel psr-4自动加载机中:composer.json

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

我们转储作曲家自动加载机

composer dump-autoload

现在,您可以在 laravel 5 项目中的任何地方使用您的软件包。如果您需要一些特定于 laravel 的功能,如服务提供商或视图发布,请按照 Laravel 5.0 文档中所述使用它们。


答案 2

laravel 5标准,带工作台

设置1:像往常一样安装拉拉维尔。

步骤 2:创建包文件夹和服务提供程序

在根目录中创建一个调用“包”的文件夹/"vendorName"/"packageName"/src" Eg: root/packages/jai/Contact/src

现在导航到 src 文件夹并创建一个服务提供程序类:“ContactServiceprovider.php”

您的服务提供商应该扩展必须实现注册方法的ServiceProvider。

注意:如果你愿意,你可以有dd(“测试”);在引导功能中,然后转到步骤3,但您已经复制了可能要创建视图,路由,配置和控制器的文件,请检查下面的链接

步骤 3:在 psr-4 下的根 composer.json 文件中的根目录中添加包路径composer.json"jai\Contact\": "packages/jai/Contact/src/"

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

步骤4:在应用程序配置中添加服务提供商。

在 root/conifg/app 中.php提供程序下添加包服务提供程序以将包挂接在中。

   'Jai\Contact\ContactServiceProvider',

步骤5:运行作曲家转储自动加载 - 确保没有错误。

全部完成 - 现在您可以通过网址访问您的软件包 -"yourwebsite/contact"

资源从这里 : https://github.com/jaiwalker/setup-laravel5-package


推荐