jackiedo/workbench

此包已被弃用,不再维护。作者建议使用 jackiedo/laravel-packager 包。

将 workbench 带回 Laravel 5+ 及以后版本。

5.6.1 2020-02-17 21:52 UTC

README

截至 2020 年 7 月 1 日,Laravel Workbench 已不再维护。

它将作为存档保留,但不会进行维护、解决问题,未来也不会发布新版本。

由于包的版本已经碎片化,同时其功能也不再适用于现代 Laravel 版本,我决定停止为其开发。相反,我构建了一个名为 Laravel Packager 的更高效包,并投入精力其中。

Jackie Do

Laravel Workbench

Latest Stable Version Total Downloads Latest Unstable Version License

Laravel Workbench(最初来自 Laravel 4.x,现已停止更新)支持我们快速构建完美的 Laravel 结构化包,而不需要花费太多时间。

此包旨在将 Laravel Workbench 带回 Laravel 5+ 及以上版本。通过其强大的功能,让此包在每一个细节上支持您。

功能

  • 为包构建目录结构。
  • 为包生成标准的 composer.json 文件。
  • 为包生成标准的 Service Provider 文件。
  • 生成一些脚手架资源文件,例如
    • 外观文件
    • 接口文件
    • 抽象文件
    • 异常文件
    • 控制器文件
    • 中间件文件
    • 模型文件
    • Artisan CLI 文件
    • 配置文件
    • 迁移文件
    • 语言文件
    • 视图文件
    • 路由文件
    • 助手文件
    • ...
  • 自动加载到能够立即使用您的包(通过将您的包的服务提供者添加到 config/app.php 文件中的 providers 部分或通过在 composer.json 文件的 extra/laravel 部分中使用发现包功能)。

概览

查看以下主题以了解更多关于 Laravel Workbench 的信息

版本和兼容性

Laravel Workbench 的每个分支都与 Laravel 5+ 的每个版本相似。目前,此包支持以下 Laravel 版本

分支 Laravel 版本
5.0 5.0
5.1 5.1
5.2 5.2
5.3 5.3
5.4 5.4
5.5 5.5
5.6 5.6

在各个分支中,我们有多个版本,标签语法为 5.0.*5.1.*5.2.*...

安装

步骤 1 - 通过 Composer 安装此包。

在您的项目源终端运行 composer require 命令

$ composer require jackiedo/workbench:{{laravel-version}}.*

注意:上面的 {{laravel-version}}.* 字符串是您想要安装 Laravel Workbench 的 Laravel 的主版本。例如,如果您想在此包上安装 Laravel 5.6,您必须设置 require 为 jackiedo/workbench:5.6.*

步骤 2 - 添加自动加载服务提供者的机制(仅适用于 Laravel 5.4 或更早版本)。

打开 config/app.php 文件,并在 providers 数组中添加一个新项目

...
'providers' => array(
    ...
    Jackiedo\Workbench\WorkbenchServiceProvider::class,
),

注意:如果我们使用的是 Laravel 版本 5.5 或更高版本,并且启用了功能 发现包,则可以跳过上述步骤。

步骤 3 - 发布配置文件。

在项目源代码的终端中,运行以下命令

$ php artisan vendor:publish --provider="Jackiedo\Workbench\WorkbenchServiceProvider" --force

注意:你应该在发布命令中使用 --force 选项来覆盖最新的配置文件。

步骤 4 - 注册工作台包加载器。

打开 Laravel 项目根目录下的 bootstrap/app.php 文件,并在脚本顶部(在 PHP 开头标签之后)添加以下代码

<?php

/*
|--------------------------------------------------------------------------
| Register The Workbench Loaders
|--------------------------------------------------------------------------
|
| The Laravel workbench provides a convenient place to develop packages
| when working locally. However we will need to load in the Composer
| auto-load files for the packages so that these can be used here.
|
*/

if (is_dir($workbench = __DIR__.'/../workbench'))
{
    Jackiedo\Workbench\Starter::autoload($workbench);
}

步骤 5 - 为 Laravel 5.5 或更高版本添加自动发现工作台包的机制。

在此最后一步中,如果我们使用的是 Laravel 版本 5.5 或更高版本,我们应该将功能 自动发现工作台包 添加到 Laravel 项目的 composer.json 文件中的 post-autoload-dump 部分。

打开 composer.json 文件,并在 @php artisan package:discover 行之后添加以下行 @php artisan workbench:discover

"post-autoload-dump": [
    ...
    "@php artisan package:discover",
    "@php artisan workbench:discover"
]

注意:如果我们使用的是 Laravel 版本 5.4 或更早版本,我们不执行上述步骤。

用法

现在,您可以使用工作台命令创建与 Laravel 4.2 相同的包。

注意:在创建包之前,您应该更新 config/workbench.php 文件中的 nameemail 配置值。

创建基本包。

语法

$ php artisan workbench:make vendor/name

注意:上面的 vendor/name 字符串是包名的形式。例如:jackiedo/demo-package

创建带有生成一些脚手架资源的包。

语法

$ php artisan workbench:make vendor/name --resources

为所有工作台包导出自动加载器

在构建包的过程中,每次您生成新的类、文件或更改包的 composer.json 文件时,您都应该通过以下命令重建包的自动加载器

$ php artisan workbench:dump-autoload

手动发现工作台包

在构建包的过程中,每次您更改包的 composer.json 文件中的 extra/laravel 部分,您都应该通过以下命令重建缓存

$ php artisan workbench:discover

或者,您可以使用 composer dump-autoload 命令,因为我们已经在安装过程中将上述命令添加到 Laravel 项目的 composer.json 文件中的 post-autoload-dump 部分。

删除现有工作台包

语法

$ php artisan workbench:delete vendor/name

截图

不生成脚手架资源创建包。

create-without-resources result-without-resources

生成脚手架资源创建包。

create-with-resources result-with-resources

生成脚手架资源创建包,并将 PSR-4 自动加载命名空间指向 src 目录。

create-with-point-namespace-to-src-dir result-with-point-namespace-to-src-dir

配置

所有详细信息都已在您的 config/workbench.php 文件的注释中提供(您必须在运行 Artisan vendor:publish 命令之前)。请在使用之前仔细阅读。

其他文档

有关包开发的更多文档,您可以访问官方 Laravel 文档页面