php - Laravel 5 包开发

标签 php laravel laravel-5

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

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

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

最佳答案

使用 laravel 工作台包:

您可以在 Laravel 5 中添加 illuminate/workbench 包,方法是将其添加到您的 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' => '',
];

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

php artisan workbench vendor/name

创建自己的包结构

在此示例中,我们将在包目录中创建名为 awesome 的包。

这是包结构:

packages/
  vendor/
    awesome/
      src/
        Awesome.php
      composer.json
  • 供应商:您的供应商名称,通常是您的 github 用户名。
  • Awesome:您的包裹名称
  • 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 autoloader:

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

然后我们转储 composer 自动加载器

composer dump-autoload

现在您可以在 laravel 5 项目的任何地方使用您的包。如果你需要一些 laravel 特定的功能,比如服务提供者或 View 发布,请按照 Laravel 5.0 documentation 中的描述使用它们。 .

关于php - Laravel 5 包开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28378460/

相关文章:

Laravel 获取零关系数的模型数

php - 在 Laravel 5 请求类中使用 times() 函数

php - 逗号分隔列表的子字符串的正则表达式

javascript - 如何使用模态框单独加载文本?

PHP 相当于 MySQL 的 UNIX_TIMESTAMP()?

mysql - Laravel morphedByMany where 条件和计数

php - Laravel - 更改迁移文件名/类,迁移 :reset still looks for old class

php - 以下查询有什么问题,它显示页面在运行后无法正常工作

php - 我的 Laravel 5.2.10 session 不会持续

php - 如何检测我使用 Bootstrap 数据表编辑过的单元格?