Laravel 5 package development


Laravel 5 package development

由于workbench已被删除,我在Laravel 5中创建包时遇到问题。

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

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

使用laravel Workbench包:

您可以通过将composer.json:添加到Laravel 5中来添加illuminate/workbench

"illuminate/workbench": "dev-master"

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

'Illuminate'Workbench'WorkbenchServiceProvider'

现在您需要创建config/workbench.php文件,因为它已从Laravel5:中删除

<?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

创建自己的包结构

在这个示例中,我们将在packages目录中创建名为真棒的包。

以下是包装结构:

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

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

composer init

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

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

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

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

然后我们转储作曲家自动加载器

composer dump-autoload

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

laravel 5标准,不带工作台

设置1:像往常一样安装laravel。

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

在根目录中创建一个名为"packages"的文件夹/"vendorName"/"packageName"/src" Eg: root/packages/jai/Contact/src

现在导航到src文件夹并创建一个服务提供者类:"ContactServiceprovider.php"

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

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

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

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

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

在您的root/conepeg/app.php的providers下添加您的包服务提供商以挂接您的包。

   'Jai'Contact'ContactServiceProvider',

步骤5:运行composer dump autoload-确保没有错误。

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

此处的资源:https://github.com/jaiwalker/setup-laravel5-package

您可以在这个命名的packman上使用package。composer global require "hadefication/packman",只是Laravel的一个简单的包创建者。