evercode1/foundation-maker

Laravel 5.3 的 Foundation Maker Artisan 命令

该包的官方仓库似乎已不存在,因此该包已被冻结。

2.0.10 2017-01-31 02:06 UTC

README

Latest Version on Packagist Software License Total Downloads

FoundationMaker 是一个用于与 Laravel PHP 框架 (5.3) Artisan 命令行工具一起使用的代码生成器。FoundationMaker 尚未针对 Laravel 5.4 进行开发。

FoundationMaker 添加了 19 个新的 artisan 命令,提供了 CRUD 生成、视图和数据网格的现成模板,支持 AJAX 搜索、列排序和分页。您可以在不到一分钟的时间内创建、迁移和测试具有 CRUD 和视图的代码基础。您还可以为 FoundationMaker 创建自定义模板和令牌。还有一个创建即时社交应用的命令。

帮助 支持 FoundationMaker

安装

通过 Composer

composer require evercode1/foundation-maker

在您的 config/app.php 文件中,将以下内容添加到 providers 数组中

Evercode1\FoundationMaker\FoundationMakerServiceProvider::class,

FoundationMaker 已使用 Vue.js 版本 2.0.1 构建。使用全新的 Laravel 安装,您将获得 Vue 2,因此这将工作,一旦我们设置了资源。您无需手动操作,您将在运行 make:assets 命令时获得这些资源,这是您需要运行以利用 FoundationMaker 的。

您应该在运行 make:assets 命令后运行 npm install。

使用方法

摘要

有关更详细的说明,请参阅 make:foundation 教程示例

使用 make:assets 命令,立即创建所有数据网格所需的由 Elixir 管理的资源。这应该在 Laravel 的全新安装时完成。完成此操作后,运行 npm install。

使用 make:master 命令,立即创建一个布局文件夹和主页面,该页面使用 Elixir 来管理版本化资源。您需要在创建基础之前创建主页面。您可以在运行命令后自定义主页面。使用的是最小化的 Bootstrap,因此您可以轻松修改和扩展。

使用 make:foundation 命令,立即创建代码基础并获取一个可工作的数据网格,支持可搜索、可排序和可分页,使用 vue.js 编写

您还可以立即获得创建、编辑和显示视图。以下是创建视图的外观

basic create view

使用的是最小化的 Bootstrap,因此您可以轻松修改和扩展。

使用 make:templates 命令,您可以轻松修改 FoundationMaker 使用的模板,为代码添加个性化的触摸。

“make:social-app”命令结合了“make:assets”和“make:master”,可以构建一个完整的社交应用。有关依赖关系,请参阅文档。

FoundationMaker命令

FoundationMaker将安装19个Artisan命令。

11个make命令

8个remove命令

使用make:master来创建主页面,提供依赖项,包括:

  • 布局文件夹
  • 主页面(您提供名称)
  • 元部分
  • CSS部分
  • 脚本部分
  • 底部部分
  • 导航部分
  • 垫片部分
  • jQuery
  • Bootstrap
  • font-awesome

使用make:foundation来创建crud和视图所需的所有文件,包括:

  • 模型
  • 控制器
  • API控制器(如果尚不存在)
  • 迁移
  • 测试
  • 查询文件夹(如果尚不存在)
  • GridQueries文件夹(如果尚不存在)
  • GridQueries/Contracts文件夹(如果尚不存在)
  • GridQuery.php
  • DataQuery.php
  • 适当命名的模型查询文件
  • Vue.js组件
  • 适当命名的视图文件夹
  • 索引视图
  • 创建视图
  • 编辑视图
  • 显示视图

“make:foundation”命令还附加到以下文件:

  • web.php
  • ModelFactory.php
  • ApiController(如果已存在)
  • components.js

使用make:crud来创建显示视图所需的文件

  • 模型
  • 控制器
  • API控制器(如果尚不存在)
  • 迁移
  • 测试
  • 查询文件夹(如果尚不存在)
  • GridQueries文件夹(如果尚不存在)
  • GridQueries/Contracts文件夹(如果尚不存在)
  • GridQuery.php
  • DataQuery.php
  • 适当命名的模型查询文件

“make:crud”命令还附加到以下文件:

  • routes.php
  • ModelFactory.php
  • ApiController(如果已存在)

使用make:views来创建视图,包括:

  • 适当命名的视图文件夹
  • 索引
  • 创建
  • 编辑
  • 显示
  • 适当命名的Vue.js组件

“make:views”命令还附加到以下文件:

  • components.js

“make:parent-child”将创建父亲和子级的所有crud和视图文件,包括:

  • 模型
  • 控制器
  • API控制器(如果尚不存在)
  • 迁移
  • 测试
  • 查询文件夹(如果尚不存在)
  • GridQueries文件夹(如果尚不存在)
  • GridQueries/Contracts文件夹(如果尚不存在)
  • GridQuery.php
  • DataQuery.php
  • 适当命名的模型查询文件
  • Vue.js组件
  • 适当命名的视图文件夹
  • 索引视图
  • 创建视图
  • 编辑视图
  • 显示视图

“make:parent-child”命令还附加到以下文件:

  • web.php
  • ModelFactory.php
  • ApiController(如果已存在)
  • components.js

此命令与“make:foundation”命令操作方式相同,但为父亲和子级都构建基础。

在视图中,它将显示关系,在子级的创建和编辑视图中,您将得到相关的父级,因此当您创建子级记录时,可以将其关联到父级记录。如果您想在显示页面上有slug,请使用可选的slug参数。

“make:child-of”命令类似于“make:parent-child”命令,但它只创建子级。

make:child-of 命令将为父项和子项创建所有 CRUD 和视图文件,包括。

  • 模型
  • 控制器
  • API控制器(如果尚不存在)
  • 迁移
  • 测试
  • 查询文件夹(如果尚不存在)
  • GridQueries文件夹(如果尚不存在)
  • GridQueries/Contracts文件夹(如果尚不存在)
  • GridQuery.php
  • DataQuery.php
  • 适当命名的模型查询文件
  • Vue.js组件
  • 适当命名的视图文件夹
  • 索引视图
  • 创建视图
  • 编辑视图
  • 显示视图

make:child-of 命令还将追加以下文件

  • web.php
  • ModelFactory.php
  • ApiController(如果已存在)
  • components.js

它还会修改父模型以包含关系。此命令也提供 slug 选项。

所有视图均需要主页面

请注意

FoundationMaker 模板假定您使用并拥有主页面。我们建议使用我们的 make:master 命令,它会立即为您创建。

如果您不使用我们的 make:master 命令来创建主页面,那么您需要确保以下内容

  • 在您的视图文件夹中的 layouts 文件夹中有一个主页面
  • 使用 Elixir 调用版本资产的正确方法。

如何学习 FoundationMaker 命令

为了与 FoundationMaker 玩耍,并快速学习,我们建议安装带有工作数据库连接的 Laravel 最新构建。

然后按照下一节中描述的顺序执行步骤。

make:foundation 教程示例

为了完全理解 make:foundation 命令的力量,让我们通过一个典型用例进行说明。我们将从一个带有工作数据库连接的新安装的 Laravel 开始。

接下来,运行 make:assets 命令,该命令将设置您在 Elixir 中需要管理的资产,使我们能够轻松创建和管理 Vue.js 中的数据网格组件。

一旦您有了这些,从命令行运行以下命令


npm install

然后在命令行中运行 gulp


gulp

请注意,您只需在 gulpfile.js 文件中运行一次 copy 方法


elixir(mix => {
   mix.sass(['app.scss', 'main.scss'], 'public/css/all.css')
      .webpack('app.js').version(['css/all.css', 'js/app.js'])
      .copy('node_modules/bootstrap-sass/assets/fonts/bootstrap/',
            'public/fonts/bootstrap');

});


一旦您第一次运行了 gulp 并复制了您的字体资产,您可以删除该行,这样您的 gulpfile.js 中的 elixir 方法如下


elixir(mix => {
   mix.sass(['app.scss', 'main.scss'], 'public/css/all.css')
      .webpack('app.js').version(['css/all.css', 'js/app.js']);

});


接下来,我们需要一个布局文件夹中的主页面。为此,我们建议使用我们的 make:master 命令,它将为您提供创建基础所需的一切。只需为主页面提供一个名称,并为您的应用程序提供一个可选的名称,如下所示

php artisan make:master master Demo

这将创建一个位于您的视图目录中的 layouts 文件夹,并创建一个名为 master.blade.php 的主页面。

如果您选择,您可以使用您自己的主页面,但在学习时最好使用 FoundationMaker 提供的主页面。

现在我们准备好尝试 make:foundation 命令了。我们将使用名为 Widget 的示例模型。所以,让我们使用以下命令为 Widget 模型创建一个 Widget 基础

php artisan make:foundation Widget

显然,Widget 是我们想要创建的模型的名称。

我们没有提供第二个或第三个参数,因此它将默认为“fullpage”视图类型和“master”,这是我们的主页面名称。我们还有一个选项可以放置第四个参数“Slug”,这将包括视图中的 slugs,但在这个示例中我们不这样做。

如果您想包含第三个参数,那么您还必须提供第二个参数,请查看 make:foundation 命令的详细信息。

命令运行后,我们就准备好迁移到我们的数据库了。在迁移之前,如果您喜欢,可以在此处为数据库添加额外的列。为了保持简单,我们只迁移我们已有的内容。

php artisan migrate

接下来,我们在命令行上运行gulp。


gulp

如果测试 /widget 路由,此时一切应该都能正常工作,但没有任何数据。所以让我们从命令行运行一个单元测试来添加一条记录。

vendor/bin/phpunit

您应该会看到绿色和一个在数据库中的记录。这是一个非常基本的测试,它应该会通过。

接下来,您可以使用工厂来初始化数据库。我们首先调用tinker。

php artisan tinker

然后是以下命令

factory('App\Widget', 30)->create();

然后在命令行中输入control D以退出tinker。

如果您不想使用tinker,可以通过创建表单手动添加一些记录。

有了这些,您应该能够访问您的 /widget 路由并看到以下内容

请注意,上面的页眉和页脚是通过主页面调用的,因此如果您没有使用我们的 make:master 命令,您将看到您的主页面输出或错误,如果您没有主页面。

如您所见,使用 make:foundation 命令的工作流程是最佳的,不到一分钟,您就能搭建一个可工作的CRUD应用。然后您可以轻松地修改它以添加您想要的字段,并且您已经拥有了支持您所需一切所需的一切,包括所有基本内容,如模型、迁移、路由和控制器,以及单元测试、API控制器和用于初始化的工厂方法。 make:foundation 命令为您提供了完整的起点。

还可以查看有关与 使用make:auth的提示,了解您如何使用Artisan的内置make:auth命令来设置所有您的认证视图以扩展您使用 make:master 创建的主页面。

make:assets

php artisan make:assets

此命令修改以下文件

  • gulpfile.js
  • bootstrap.js
  • app.js
  • app.scss

它还创建了以下文件

  • main.scss
  • components.js

在您的gulpfile.js中,您将在您的elixir方法中收到一个复制命令,用于您的字体资产。


elixir(mix => {
   mix.sass(['app.scss', 'main.scss'], 'public/css/all.css')
      .webpack('app.js').version(['css/all.css', 'js/app.js'])
      .copy('node_modules/bootstrap-sass/assets/fonts/bootstrap/',
            'public/fonts/bootstrap');

});

一旦您运行了一次gulp,您就可以删除该命令,因为您只需要复制一次资产。删除复制方法后,它将看起来像这样


elixir(mix => {
   mix.sass(['app.scss', 'main.scss'], 'public/css/all.css')
      .webpack('app.js').version(['css/all.css', 'js/app.js']);

});


make:assets命令为您提供运行 make:foundationmake:views 命令所需的一切。

make:master

FoundationMaker的make:master命令创建一个布局文件夹,并将主页面和相关文件放置在其中。

php artisan make:master {MasterName=master} {AppName=Demo}

第一个和第二个参数是可选的,默认为master和Demo。

您使用两个参数提供命令,您想要的主页面名称和应用程序的名称。例如,如果我们想要我们的主页面命名为master,我们的应用程序名称是MyProject

php artisan make:master master MyProject

如果您想指定项目名称的第二个参数,那么您需要在第一个参数中指定主页面名称。

这将创建以下内容

  • 在视图文件夹中的布局文件夹
  • 主页面名称由您输入的内容决定
  • 底部部分
  • 导航部分
  • CSS部分
  • 元部分
  • 脚本部分
  • Facebook 部分内容

主页面包含部分内容,这使得代码易于操作。

FoundationMaker 包含了一个最小的 Bootstrap 实现,您可以根据自己的喜好轻松更改。

使用 FoundationMaker 的 make:master 命令也使得操作其他命令(如 make:foundation)更加方便,因为它已经为您设置了所需的依赖项。

请注意,make:master 命令中的第二个参数是可选的。如果您省略了它,例如

php artisan make:master master

它将默认将您的应用程序命名为 "Demo",在 bootstrap navbar-brand 类中显示在顶部导航中。

使用 make:auth 的技巧

这里有一个使用 make:master 与 artisan 的原生 make:auth 命令的技巧。如您所知,make:auth 命令将创建所有您的认证视图,扩展名为 app.blade.php 的主页面。您可以轻松使用这两个命令。

首先运行 make:master,但请确保您不要将主页面命名为 'app',以免与 make:auth 命令将创建的页面冲突。在运行 make:master 之后,运行 make:auth 命令。然后,您只需转到 views/auth 文件夹,并将那些视图文件中的 @extends('layouts.app') 指令更改为 @extends('layouts.whatever-your-master-page-is-named').

请注意,make:auth 命令还会创建一个控制器,该控制器将用户返回到特定的登录和注册页面,因此如果您希望生成的主页面也扩展到那里,则必须修改该视图。

make:crud

php artisan make:crud Widget slug

make:crud 命令接受两个参数,您希望在其上构建 CRUD 的模型名称和可选的 slug 参数。如上所述,该命令将创建以下类型的文件

  • 模型
  • 控制器
  • API控制器(如果尚不存在)
  • 迁移
  • 测试
  • 查询文件夹(如果尚不存在)
  • GridQueries文件夹(如果尚不存在)
  • GridQueries/Contracts文件夹(如果尚不存在)
  • GridQuery.php
  • DataQuery.php
  • 适当命名的模型查询文件

它还会附加到以下文件

  • routes.php
  • ModelFactory.php
  • ApiController(如果已存在)

因为我们指定了 'slug',所以它将包含在显示视图中具有 slug 的必要代码。

然后您可以运行 make:views 命令,一旦您迁移并播种数据或创建了几个记录并运行了 gulp,它将具有功能。

make:views

make views 允许您根据输入快速构建创建、显示、编辑和索引视图。

make:views 命令有以下参数

php artisan make:views {ModelName} {ViewType=fullpage} {MasterPageName=master} {Slug=false} 

第二个参数确定视图类型,默认为 'fullpage'。如果您想创建具有左侧导航的视图,则将此参数设置为 'leftnav'。

最后一个参数是可选的,指示您是否想要 slugs,这应与您运行 make:crud 时的选择相匹配。

在运行 make:views 之前,至少您应该已经创建了您的模型、路由和控制器。

作为手动执行此操作的替代方案,您可以使用 FoundationMaker 的 make:crud 来为您完成操作。或者,您可以使用 make:foundation 来一次性创建所有内容。如果您使用 make:foundation,则不需要运行 make:views,因为视图将包含在 foundation 中。

我们建议您使用我们的 make:master 命令来创建您的母版页面。在任何情况下,在您运行 make:views 之前,您都需要准备好您的母版页面和资源。如果您尚未创建资源,请使用 make:assets 命令来创建它们,并在命令行中运行 gulp。

所以,以 make:views 为例,如果您有一个名为 Widget 的模型,并且您有一个名为 master.blade.php 的母版页面,您可能需要做以下操作

php artisan make:views Widget

在上面的示例中,我们告诉它模型名称 'Widget',并将母版页面默认为 'master'。由于我们不想使用 slugs,我们可以简单地省略该命令,它将默认为 false。如果您想为 slugs 设置 'Slug' 的值,那么您还需要提供第三个参数,即母版页面的名称。

请记住,在运行 make:viesmake:assets 命令之后运行 gulp。

如果您想操作 FoundationMaker 使用的模板,请运行 make:templates 命令。

视图需求

要成功使用 make:viewsmake:foundation 命令,您需要一个母版页面。我们建议使用我们的 make:master 命令,它将为您的项目提供一个良好的起点。

您还需要放置某些资源,您可以通过运行 make:assets 命令并运行 gulp 来获取这些资源。

make:foundation

make:foundation 命令具有以下参数

php artisan make:foundation {ModelName} {ViewType=fullpage} {MasterPageName=master} {Slug=false}

最后一个参数是可选的,表示要显示在显示视图上的 slugs 选项。如果您想使用它,请将字符串 'slug' 作为第四个参数包含在内。

让我们看看一个典型的例子。如果您想创建一个不带 slugs、格式为全页面的名为 Widget 的模型,并且您有一个名为 master.blade.php 的母版页面,您可以这样做

php artisan make:foundation Widget
 

视图将扩展布局.master,因为我们默认为名为 'master' 的母版页面。

如果您想为 slugs 设置 'Slug' 的值,那么您还需要提供第四个参数,即母版页面的名称,如下所示

php artisan make:foundation Widget fullpage master Slug

添加 slug 将为您的显示视图创建 slugs。

如果您希望您的视图为左侧导航留出空间,则在命令中将 'leftnav' 作为第二个参数,如下所示

php artisan make:foundation Widget leftnav master Slug

make:foundation 将创建以下内容

  • 模型
  • 控制器
  • API控制器(如果尚不存在)
  • 迁移
  • 测试
  • 查询文件夹(如果尚不存在)
  • GridQueries文件夹(如果尚不存在)
  • GridQueries/Contracts文件夹(如果尚不存在)
  • GridQuery.php
  • DataQuery.php
  • 适当命名的模型查询文件
  • 适当命名的视图文件夹
  • 索引视图
  • 创建视图
  • 编辑视图
  • 显示视图
  • Vue.js 组件文件

make:foundation 还会附加到以下文件

  • routes.php
  • ModelFactory.php
  • ApiController(如果已存在)
  • components.js

make:templates

命令的签名如下

php artisan make:templates

make:parent-child

有时我们需要关联两个模型,最常见的情况是类别和子类别。FoundationMaker 的 make:parent-child 命令允许您通过单个命令创建这种关系。

该命令具有以下参数

php artisan make:parent-child {ParentName} {ChildName} {ViewType=fullpage} {MasterPageName=master} {Slug=false}

例如,您可能想这样运行

php artisan make:parent-child Category Subcategory

这将相当于在 Category 和 Subcategory 上运行 make:foundation 命令,有一些重要差异。

它将为子类别构建的数据网格将显示子类别所属的类别。

父模型和子模型都将根据您创建的关系构建。父模型将具有多对一关系,而子模型将在模型中具有属于关系。

您还可以在子模型创建表单中,例如,子类别创建表单中,看到父模型的下拉列表,例如,类别,这允许您将子模型与父模型关联。视图将扩展布局.master,因为我们默认使用名为‘master’的母页。

此命令与make:foundation命令类似,将为您创建所有CRUD和视图,您只需运行迁移、单元测试和工厂方法来填充它们,然后运行gulp更新资产。您可以在不到一分钟内完成此操作。

make:child-of

在您已经有一个现有模型,并且想要为子模型创建一个基础的情况下,您应该使用make:child-of命令。命令的签名如下

php artisan make:child-of {ParentName} {ChildName} {ViewType=fullpage} {MasterPageName=master} {Slug=false}

例如,如果您为AutoMaker创建了基础,并且想要一个名为AutoPart的子模型,您可以运行以下命令

php artisan make:child-of AutoMaker AutoPart
 

这将更新父模型,在这种情况下是AutoMaker,以包含多对一关系,并创建AutoPart的基础,它将包含对AutoMaker的属于关系。视图将扩展布局.master,因为我们默认使用名为‘master’的母页。

如果您想要为“别名”赋予“别名”的值,那么您还需要提供第三个参数,即母页的名称。

如果您想要为“别名”赋予“别名”的值,那么您还需要提供第三个参数,即母页的名称。

make:templates

php artisan make:templates
 

此命令将在您的应用程序文件夹中创建一个名为“Templates”的文件夹。您可以按需自定义这些模板,并且FoundationMaker将使用这些模板而不是默认模板。

您还可以通过在您的“Templates”文件夹中的CustomTokens.php文件中使用CustomTokens类将这些自定义令牌注入到这些模板中。请阅读文件中的注释以了解用法。您可以了解更多信息

自定义令牌

make:exception

make:exception命令将创建一个具有提供名称的异常,如果提供了视图标志,还将创建相应的视图。

命令签名如下

php artisan make:exception {ExceptionName} {View=false} {MasterPageName=master}

视图标志默认为false,因此除非您提供了除了false以外的值,否则不会创建视图。

您不需要提供视图名称,它将从异常名称自动格式化。

例如,如果您想要一个支付拒绝的异常,命令可能如下所示


php artisan make:exception PaymentDeclined View

在这种情况下,您将在app/Exceptions文件夹中获得PaymentDeclinedException.php,并在resources/views/errors文件夹中获得payment-declined.blade.php。由于我们没有指定母页名称,它默认为master。

您需要手动将异常添加到您的Handler.php文件中。您可以使用我们的make:exception-handler命令为此异常处理方法创建一个兼容的Handler。

请注意,视图已编写为期望传递给它的$e对象,因此您可以包含自定义消息。它将按照以下方式包含在blade语法中


{{ $e->getMessage() }}

如果您不想从Handler.php文件中将$e对象传递到视图中,您需要设置一个自定义模板,其中删除了该部分,或者在使用原生模板创建异常后手动删除它。

您必须提供正确格式的正确异常名称,例如


php artisan make:exception PaymentDeclined View

请注意,您不需要在名称中添加单词“Exception”,它将自动添加。

make:exception-handler

此命令将使用Foundation Maker的异常处理程序覆盖原生的异常处理程序。


php artisan make:exception-handler

此命令不接受任何参数。它将覆盖现有文件,因此最好在设置新项目时使用。

Handler.php类已设置为渲染视图并传递$e对象,以便视图可以接收自定义消息。该类利用switch语句进行异常类型处理,使得添加异常变得容易。

请注意,当您运行make:exception命令时,您必须手动将异常添加到Handler中,在render和renderException方法中。renderException情况语句如下


case ($e instanceof YourCustomException):
   
   return response()->view('errors.your-custom', compact('e'));

   Break;



make:social-app

使用此命令时,请使用Laravel的新安装。其签名如下


php artisan make:social-app {DomainName} {AppName=demo} {MasterPageName=master}

如果您不提供最后两个参数,它们将分别默认为“demo”和“master”。由于许多FoundationMaker命令使用默认值MasterPageName=master,除非您有很好的理由,否则请将“master”用作主页名称。

因此,如果您运行以下内容


php artisan make:social-app my-demo.com MyDemo

则该命令将在config/session.php中将“my-demo”的域设置,并且您的主页将被命名为“master”,您的应用程序名称将被命名为“MyDemo”。

请注意,您不能在参数中使用空格。在上面的示例中,“My Demo”将导致应用程序名称为“My”,主页名称为“Demo”。

为了让应用程序正常工作,它需要在您的应用程序中以下依赖项

您应通过composer要求这些依赖项,并将关联的提供者值设置到config/app.php中。

显然,您将需要创建自己的Facebook应用程序来使用一键社交登录。您将自行完成。该应用程序已为Facebook和Github准备就绪。您将提供这些凭据到.env文件中。

如果您尚未设置,则需要运行以下命令


 npm install 

在make:social-app命令之后,您还需要运行以下命令


php artisan migrate

并且也


gulp


您不需要运行make:master或make:assets,所有这些文件都由make:social-app创建。

由make:social-app创建的应用程序将有一个uri为“/”的启动页面,一个登录用户仪表板位于“/home”,一个管理员仪表板位于“/admin”。

目前,当您创建一个基础时,它默认格式化为全页页面。如果您需要与社交应用程序后端一起工作的视图,则需要将leftnav指定为第二个参数。否则,要将视图转换为后端视图,您可以在视图中添加以下两个div

@section('content')

<div class="row">
   <div class="col-sm-offset-4 col-sm-8">

然后当然在适当的位置添加两个关闭的div标签。

添加您的Facebook凭据,您的骨架应用程序就绪,具有前端和后端功能。

以下是命令创建的文件的描述

控制器

  • 认证控制器
  • API控制器
  • 用户控制器
  • 营销图片控制器
  • 页面控制器
  • 个人资料控制器
  • 设置控制器

异常

  • Handler.php
  • 8个其他异常文件和相关视图

认证特征

  • 社交认证所需的6个特征
  • 拥有控制访问的OwnsRecord特征

中间件

  • AllowIfAdmin.php
  • Kernel.php

请求

  • CreateImageRequest
  • EditImageRequest
  • UserRequest

查询

  • Contracts文件夹和DataGrid.php契约
  • GridQuery.php和MarketingImageQuery.php

特征

  • HasModelTrait
  • ManagesImages
  • ShowsImages

模型

  • User
  • Profile
  • SocialProvider
  • MarketingImage
  • SuperModel

配置

  • image-defaults.php
  • session.php
  • services.php

迁移

  • 运行应用程序所需的4个迁移

资产

  • gulpfile.js
  • components.js *main.scss
  • 配置所有运行应用程序所需的资产文件

视图

  • 所有认证视图
  • Layouts文件夹和主页面视图
  • 异常的错误视图
  • 运行应用程序所需的所有其他视图

路由

  • 覆盖web.php,包含应用程序所需的所有必要路由

环境变量

  • 将facebook和github添加到.env文件中

由于make:social-app命令会覆盖大量文件,因此它仅应在项目的初期使用。在完成其他工作后运行该命令可能会覆盖文件。

make:social-app命令生成的文件与make:foundation命令和其他FoundationMaker命令完全兼容。例如,Handler.php文件格式化为与make:exception命令一起使用。

如果您想为后端创建带有视图的基础结构,请像这样提供make:foundation命令的第二个参数


php artisan make:foundation Widget backend master-admin Slug

“Widget”是模型,“backend”是视图类型,“master-admin”是主页面,“Slug”将创建缩写。

没有针对make:social-app的相应移除命令。

移除命令

remove:master

php artisan remove:master

此命令将删除您的布局文件夹及其所有内容。

remove:foundation

php artisan remove:foundation {ModelName}

此命令将删除给定模型的全部基础结构文件

remove:foundation将删除以下内容

  • 模型
  • 控制器
  • API控制器(如果为空)
  • 迁移
  • 测试
  • 适当命名的模型查询文件
  • 工厂方法
  • 路由

remove:crud

此命令将删除给定模型的全部CRUD文件

php artisan remove:crud {ModelName}

remove:crud将删除以下内容

  • 模型
  • 控制器
  • API控制器(如果为空)
  • 迁移
  • 测试
  • 适当命名的模型查询文件
  • 工厂方法
  • 路由

remove:exception

此命令将删除异常以及存在的视图

php artisan remove:exception {ExceptionName}

您必须提供正确格式的正确异常名称,例如


php artisan remove:exception PaymentDeclined

请注意,您不需要在名称中添加单词“Exception”,它将自动添加。

remove:views

此命令将删除给定模型的全部视图文件

php artisan remove:views {ModelName}

remove:views 将删除以下内容

  • 适当命名的视图文件夹
  • 索引视图
  • 创建视图
  • 编辑视图
  • 显示视图
  • Vue.js组件
  • components.js 中的组件调用

remove:child-of

此命令将删除给定父元素和子元素的全部基础文件

php artisan remove:child-of {ParentName} {ChildName}

remove:child-of 将删除以下内容

  • 子模型
  • 子控制器
  • 子 API 控制器方法
  • 子迁移
  • 子测试
  • 子模型查询文件
  • 子视图文件夹
  • 子索引视图
  • 子创建视图
  • 子编辑视图
  • 子显示视图
  • 子 Vue.js 组件
  • components.js 中的子组件调用
  • 子工厂方法
  • 子路由
  • 父模型关系

remove:templates

如果您已经使用 make:templates 命令在您的应用文件夹中创建了 Templates 文件夹,您可以使用 remove:templates 命令来删除整个文件夹。

令牌

以下是在自定义模板中可能使用的令牌列表

  • apiControllerMethod
  • apiDataPath
  • appName
  • chartApiRoute
  • chartApiControllerMethod
  • child
  • childMigrationModel
  • childRelation
  • childsTableName
  • createdAt
  • controllerName
  • endGridName
  • field_name
  • folderName
  • gridApiRoute
  • gridComponentName
  • gridName
  • masterPageName
  • migrationModel
  • 模型
  • modelAttribute
  • modelId
  • modelInstance
  • modelPath
  • modelResults
  • modelRoute
  • modelsUpperCase
  • parent
  • parentFieldName
  • parentId
  • parent_id
  • parentInstance
  • parentInstances
  • parentModelPath
  • parentsTableName
  • slug
  • tableName
  • upperCaseModelName
  • useModel
  • useParent
  • viewType
  • vueApiControllerMethod

如果您想在模板中嵌入令牌(您可以在运行 make:templates 命令后这样做),请使用以下约定。例如,如果您想显示模型名称

:::model:::

约定是在令牌前后使用三个冒号。

如果您想使用您自己创建的自定义令牌,请参阅下一节。

自定义令牌

除了 FoundationMaker 随附的令牌之外,您还可以在运行 make:templates 命令后定义自己的令牌。

运行该命令后,您将在您的 app/Templates 文件夹中找到一个名为 CustomTokens.php 的文件。使用该文件来定义您的令牌。

模型

在输入模型名称时,您有一些选择。最终,只要它正确关闭,FoundationMaker 都会将其转换为正确的格式。

输入模型名称的最佳方式是坚持使用 Laravel 的约定。以下是一些示例


php artisan make:views Widget master

对于复合词


php artisan make:views BigWidget master

为了简化操作,并且不需要删除大量文件来纠正拼写错误,我在如何向命令提供模型名称的方式中内置了一些灵活性。

对于单字模型,您也可以使用单词的小写版本作为命令的第一个参数


php artisan make:foundation widget master

在这种情况下,widget 代表 Widget 模型。FoundationMaker 将自动将其转换为大写以用于模板中的适当位置。

如果你有复合词模型,例如,AlphaWidget,你可以将其写成小写字母,并用短横线分隔


php artisan make:foundation alpha-widget master dt

注意,无论你使用AlphaWidget还是alpha-widget,你的路由将是


Route::resource('alpha-widget', 'AlphaWidgetController');

FoundationMaker会将模型名称中的复数转换为单数,这有助于防止出错。

路由

单词模型的路由采用模型的小写值。例如,对于Widget模型,你会有以下路由


Route::resource('widget', 'WidgetController');

复合词模型的路由将使用短横线分隔。例如,对于AlphaWidget模型,你会有以下路由


Route::resource('alpha-widget', 'AlphaWidgetController');

支持FoundationMaker

希望你喜欢这个插件,并觉得它很有用。我没有捐赠按钮,但如果你想支持我的工作并了解更多关于Laravel的信息,你可以通过购买我的书籍来实现,Laravel 5.4 For Beginners,我会非常感激。

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTINGCONDUCT以获取详细信息。

安全

如果你发现任何与安全相关的问题,请通过电子邮件ikon321@yahoo.com而不是使用问题跟踪器。

致谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。