mjczz/blueprint_ex

一个表达性、易于阅读的代码生成工具,由laravel-shift/blueprint修改

此软件包的官方仓库似乎已丢失,因此软件包已被冻结

v1.12 2020-08-04 05:16 UTC

README

此软件包是从laravel-shift/blueprint复制的,我进行了一些修改,哈哈哈

需求

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

安装

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

composer require --dev mjczz/blueprint_ex

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

基本用法

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

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组件:

  • 一个完整的modelPost,包括fillablecastsdates属性,以及关系方法。
  • 创建posts表的迁移。
  • 一个智能设置列的factory,使用假数据。
  • 一个PostController的控制器类,具有indexstore动作,以及为每个语句生成的代码。
  • PostController动作的路由。
  • 一个基于Post模型定义的titlecontent验证的form requestStorePostRequest
  • 一个完整的mailableReviewPost,通过构造函数设置post属性。
  • 一个完整的jobSyncMedia,通过构造函数设置post属性。
  • 一个完整的eventNewPost,通过构造函数设置post属性。
  • PostController@index渲染的Blade模板post/index.blade.php

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

文档

请浏览Blueprint文档以获取关于定义模型定义控制器高级配置扩展Blueprint的完整详情。