byancode/blueprint

一种表达性强、易于阅读的代码生成工具。

v1.23.2 2021-04-03 13:02 UTC

README

Build Status Latest Stable Version License

Blueprint

Blueprint 是一个开源工具,可以从单一、易于阅读的定义中快速生成多个 Laravel 组件。

观看 Blueprint 的快速 演示 并继续阅读此文档以开始使用。

要求

Blueprint 需要 Laravel 应用程序运行 6.0 或更高版本。

安装

您可以使用以下命令通过 composer 安装 Blueprint

composer require --dev laravel-shift/blueprint

Blueprint 将自动通过 包发现 注册自己。

附加配置:如果您正在运行 Laravel 8 或注册基于类的路由或使用 app/Models 文件夹,您将需要配置 Blueprint。请参阅 Blueprint 文档 以获取更多指导。

基本用法

Blueprint 随带一套 artisan 命令。您最常用的命令是 blueprint:build 命令,用于生成 Laravel 组件

php artisan blueprint:build [draft]

草稿 文件包含要生成的组件的 定义

让我们回顾以下用于生成一些 博客 组件的示例草稿文件

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,包括 fillablecastsdates 属性,以及关系方法。
  • 创建 posts 表的 迁移
  • 一个智能设置列的 工厂
  • 一个 PostController控制器 类,具有 indexstore 动作,每个 语句 都有生成的代码。
  • 路由 用于 PostController 的动作。
  • 一个 表单请求StorePostRequest,基于 Post 模型定义验证 titlecontent
  • 一个 mailableReviewPost,带有通过 构造函数 设置的 post 属性。
  • 一个 jobSyncMedia,带有通过 构造函数 设置的 post 属性。
  • 一个 eventNewPost,带有通过 构造函数 设置的 post 属性。
  • 一个 Blade 模板post/index.blade.php,由 PostController@index 渲染。

注意: 此示例假设在默认 Laravel 应用程序中的功能,例如 User 模型和 `app.blade.php 布局。否则,生成的测试可能会失败。

文档

浏览 Blueprint 文档 以获取有关 定义模型定义控制器高级配置扩展 Blueprint 的完整详细信息。