ruudy/metronic-crud-generator-bundle

Sensio generator扩展,用于在Crud Generator中实现Metronic Bundle。

安装: 2,072

依赖: 0

建议者: 0

安全: 0

星标: 2

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

dev-master / 0.6.x-dev 2015-04-02 11:53 UTC

This package is auto-updated.

Last update: 2024-09-19 20:10:02 UTC


README

SensioLabsInsight Total Downloads Latest Stable Version License

此Bundle扩展了symfony2 crud生成器

对于我的英语水平可能带来的不便,我深表歉意。

感谢Sonata项目,他们的代码激发了我如何做某些事情。

感谢Metronic - 响应式管理仪表板模板的制作者们,他们给予了我良好的待遇。

许可证

此Bundle采用MIT许可证。请参阅包中的完整许可证。

Resources/meta/LICENSE

安装

安装是一个简单的4步过程

  1. 配置Metronic Bundle(如有需要)
  2. 通过composer下载
  3. 启用Bundle
  4. 为Bundle生成所需的文件
  5. 扩展和配置它(可选)

步骤1. 配置Metronic Bundle(如有需要)

此软件包依赖于Ruudy - MetronicBundle

如果您没有遵循Metronic Bundle的安装步骤,您必须停止阅读此readme,首先安装并配置该bundle。

Ruudy - MetronicBundle Readme

步骤2. 通过composer下载

将RuudyMetronicCrudGeneratorBundle require行添加到您的composer.json中

"require": {
    "ruudy/metronic-crud-generator-bundle": "@dev"
}

$ php composer.phar install

或直接运行以下命令添加:

$ php composer.phar require ruudy/metronic-crud-generator-bundle '@dev'

Composer将bundle安装到您的项目的ruudy/metronic-crud-generator-bundle目录。

步骤3. 启用Bundle

在kernel中启用Bundle

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Ruudy\MetronicCrudGeneratorBundle\RuudyMetronicCrudGeneratorBundle(),
    );
}

步骤4. 为Bundle生成所需的文件

在此阶段,bundle尚未准备就绪,您可以选择使用此bundle中提供的默认基本视图,或创建自己的视图。我建议您使用默认视图测试此bundle,但如果您想从头开始创建布局,您可以直接跳到步骤5。

您需要生成正确的文件和文件夹以实现twig继承

$ php app/console ruudy:metronic-crud-generator:generate

此命令将在src/Application/Ruudy/生成一个骨架bundle,以及一些用于填充Metronic模板资源的文件夹。

之后,将新的bundle添加到kernel

<?php
    // app/AppKernel.php

    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Application\Ruudy\MetronicBackEndBundle\ApplicationMetronicBackEndBundle(),
        );
    }

步骤5. 扩展和配置它(可选)

如果您熟悉Doctrine Crud Generator,您知道crud的骨架可以存储在应用程序的许多路径上,如果不是,我建议您阅读官方文档

Symfony2 - 覆盖骨架模板

默认情况下,此bundle提供了3个路径来识别生成crud文件所需的骨架。

$skeletonDirs[] = $this->getContainer()->get('kernel')->locateResource('@RuudyMetronicCrudGeneratorBundle/Resources/skeleton');
$skeletonDirs[] = $this->getContainer()->get('kernel')->locateResource('@RuudyMetronicCrudGeneratorBundle/Resources');
$skeletonDirs[] = $this->getContainer()->get('kernel')->locateResource('@RuudyMetronicBundle/Resources');

添加位置顺序很重要,因为它定义了生成器在搜索所需文件时的优先级,因此此bundle允许您覆盖或添加位置

    // app/config/config.yml
    
    // ...
    ruudy_metronic_crud_generator:
        override_resource_locations: []
        add_resource_locations_ []

在覆盖中定义的位置将在默认bundle目录之前包含,您添加的位置之后。

此功能允许您修改我提出的基本布局,或者创建新的布局。

用法

安装后,您可以直接使用在src/Application/Ruudy中生成的bundle

src/Application/Ruudy
  1. 通过您的自己的Company/StoreBundle扩展bundle(注意您需要的视图)
  2. 使用在src/Application/Ruudy中生成的bundle

在此过程中需要实体类,因此如果您没有,请创建一个

$ php app/console generate:doctrine:entity

或者直接运行并按照步骤进行

$ php app/console ruudy:metronic-crud-generator:crud

命令将创建必要的控制器、表单类型、视图和测试。

常见错误和疑问

-- 不要忘记在你的路由文件中添加注解路由,在这个例子中我使用的是 yml,因此我在我的 "routing.yml" 中加载了它。

cruds:
  resource: "@CompanyStoreBundle/Controller/"
  type: annotation
  prefix: /admin

-- 我假设你将在一个私有管理员环境中使用此扩展包,为了避免错误,我添加了此检查。

// src/Application/Ruudy/MetronicBackEndBundle/Resources/views/zones/admin/header.html.twig

{% if app.user.username is defined %}
    {{ app.user.username }}
{% endif %}

-- 如前一点所述,登出路径通常在所有后台办公应用程序中都有。

An exception has been thrown during the rendering of a template ("Unable to generate a URL for the named route "logout" as such route does not exist.")

可以通过添加来轻松绕过。

logout:
    path: /logout

-- 不要忘记遵循 Metronic 扩展包的安装步骤,否则你将看到未样式化的页面。