tidakdijual / blueprint
一个表达性、易于阅读的代码生成工具。基于laravel shift blueprint。
Requires
- doctrine/dbal: ^3.3
- illuminate/console: ^9.0
- illuminate/filesystem: ^9.0
- illuminate/support: ^9.0
- laravel-shift/faker-registry: ^0.2.0
- symfony/yaml: ^6.0
Requires (Dev)
- mockery/mockery: ^1.4.4
- orchestra/testbench: ^7.0
- phpunit/phpunit: ^9.5.10
Suggests
- jasonmccreary/laravel-test-assertions: Required to use additional assertions in generated tests (^1.0).
This package is auto-updated.
Last update: 2024-09-30 01:46:57 UTC
README
Blueprint 是一个开源工具,可以从单个易于阅读的定义中快速生成多个 Laravel 组件。
观看 Blueprint 的快速 演示 并继续阅读以开始使用。
要求
Blueprint 需要运行 Laravel 最新稳定版本的 Laravel 应用程序,目前为 Laravel 8.x。
安装
您可以使用以下命令通过 composer 安装 Blueprint
composer require --dev laravel-shift/blueprint
Blueprint 将自动使用 package discovery 注册自身。
额外配置:如果您正在运行 Laravel 8,或注册基于类的路由或使用 app/Models 文件夹,则需要配置 Blueprint。请参阅 Blueprint 文档 以获取更多信息。
基本用法
Blueprint 附带一系列 artisan 命令。您最常用的命令是 blueprint:build 命令,用于生成 Laravel 组件
php artisan blueprint:build [draft]
draft 文件包含要生成的组件的 定义。
让我们查看以下示例 draft 文件以生成一些 blog 组件
models: Post: title: string:400 content: longtext published_at: nullable timestamp author_id: id:user controllers: Post: index: query: all render: post.index with:posts store: validate: title, content, author_id save: post send: ReviewPost to:post.author.email with:post dispatch: SyncMedia with:post fire: NewPost with:post flash: post.title redirect: post.index
从这 20 行简单的 YAML 中,Blueprint 将生成以下所有 Laravel 组件
- 一个用于
Post的模型类,包含fillable、casts和dates属性,以及关系方法。 - 创建
posts表的迁移。 - 一个智能设置列的 工厂,使用假数据填充列。
- 一个用于
PostController的控制器类,包含index和store操作,以及为每个 语句 生成的代码。 - Routes 用于
PostController操作。 - 一个基于
Post模型定义的 表单请求,名为StorePostRequest,验证title和content。 - 一个用于
ReviewPost的 mailable 类,包含通过构造函数设置的post属性。 - 一个用于
SyncMedia的 job 类,包含通过构造函数设置的post属性。 - 一个用于
NewPost的 event 类,包含通过构造函数设置的post属性。 - 由
PostController@index渲染的post/index.blade.phpBlade 模板。
注意:此示例假定默认 Laravel 应用程序中的功能,例如 User 模型和 app.blade.php 布局。否则,生成的测试可能失败。
文档
浏览 Blueprint 文档 以获取有关 定义模型、定义控制器、高级配置 和 扩展 Blueprint 的完整详细信息。
支持策略
从版本2开始,Blueprint仅生成最新稳定版Laravel(目前是Laravel 9)的代码。如果您需要支持Laravel的旧版本,可以使用版本1或升级您的应用程序(《尝试使用Shift》)。
Blueprint仍然遵循语义化版本控制。但是,它是基于其语法的。任何对语法的更改都将增加其主版本号。否则,次要版本号的增加将包含新功能。这包括为Laravel的未来版本生成代码。
