Laravel 5包开发

时间:2015-02-07 04:13:06

标签: php laravel laravel-5

我无法在Laravel 5中创建包,因为workbench已被删除。

在这个帖子(How create package in Laravel 5?)中,Goldorak建议我们自己创建自己的包结构。

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

3 个答案:

答案 0 :(得分:69)

使用laravel Workbench包:

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

"illuminate/workbench": "dev-master"

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

'Illuminate\Workbench\WorkbenchServiceProvider'

现在您需要创建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' => '',
];

在此配置文件中填写您的信息,然后您就可以使用workbench命令:

php artisan workbench vendor/name

创建自己的包结构

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

这是包结构:

packages/
  vendor/
    awesome/
      src/
        Awesome.php
      composer.json
  • 供应商:您的供应商名称,通常这是您的github用户名。
  • 很棒:您的包名称
  • src :您放置业务逻辑的位置

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

composer init

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

<?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 documentation中所述使用它们。

答案 1 :(得分:11)

laravel 5带有工作台的标准

设置1:照常安装laravel。

第2步:创建包文件夹和服务提供者

在根目录中创建一个文件夹调用&#34; packages&#34; /"vendorName"/"packageName"/src" Eg: root/packages/jai/Contact/src

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

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

注意:如果你想要你可以拥有dd(&#34; testing&#34;);在启动功能并转到步骤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步:在app config中添加服务提供商。

在您的root / conifg / app.php下,在提供商下添加您的包服务提供商以挂钩您的包。

   'Jai\Contact\ContactServiceProvider',

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

全部完成 - 现在您可以通过网址 - "yourwebsite/contact"

访问您的软件包了

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

答案 2 :(得分:0)

您可以在此名为packman的地方使用套餐。 composer global require "hadefication/packman",只是Laravel的简单包装创建者。