orchestra/canvas

Laravel 应用和包的代码生成器

v9.1.1 2024-08-06 17:20 UTC

README

Canvas 复制了基本 Laravel 应用程序中可用的所有 make artisan 命令。它允许每个人在 Laravel 安装之外使用它

  • ,例如在构建 Laravel 包时。
  • 通过允许对解析类和命名空间进行一些自定义来与 Laravel 集成。

tests Latest Stable Version Total Downloads Latest Unstable Version License Coverage Status

安装

要使用 composer 安装,请在终端运行以下命令

composer require --dev "orchestra/canvas"

用法

作为 Laravel 开发者,你应该熟悉以下命令

这些可以通过以下方式执行

php artisan make:migration CreatePostsTable --create

使用 Canvas,你可以通过以下方式运行等效命令

vendor/bin/canvas make:migration CreatePostsTable --create

canvas.yaml 预设文件

要开始,你可以在 Laravel 项目或包的根目录中首先创建 canvas.yaml

Laravel 预设

你可以运行以下命令来创建该文件

vendor/bin/canvas preset laravel

这将输出以下内容作为 canvas.yaml

preset: laravel

namespace: App

model:
  namespace: App

包预设

你可以运行以下命令来创建该文件

vendor/bin/canvas preset package

这将输出以下内容作为 canvas.yaml

preset: package

namespace: PackageName
user-auth-provider: App\User

paths:
  src: src
  resource: resources

factory:
  path: database/factories

migration:
  path: database/migrations
  prefix: ''

console:
  namespace: PackageName\Console

model:
  namespace: PackageName

provider:
  namespace: PackageName

testing:
  namespace: PackageName\Tests

你需要将 PackageName 更改为包的根命名空间。

或者,你可以设置 --namespace 选项以确保在文件中使用命名空间

vendor/bin/canvas preset package --namespace="Foo\Bar"
preset: package

namespace: Foo\Bar
user-auth-provider: App\User

paths:
  src: src
  resource: resources

factory:
  path: database/factories

migration:
  path: database/migrations
  prefix: ''

console:
  namespace: Foo\Bar\Console

model:
  namespace: Foo\Bar
  
provider:
  namespace: Foo\Bar

testing:
  namespace: Foo\Bar\Tests

Laravel 集成

默认情况下,你始终可以使用 composer exec canvas 在 Laravel 和包环境中。但是,使用包发现,Orchestra\Canvas\LaravelServiceProvider 将自动安装并覆盖所有通过 artisan 可用的默认 make 命令,这样你就可以使用它而无需进行任何更改。