ruudy/metronic-crud-generator-bundle
Sensio generator扩展,用于在Crud Generator中实现Metronic Bundle。
Requires
- ruudy/metronic-bundle: @dev
- symfony/symfony: 2.*
- twig/extensions: ~1.0
This package is auto-updated.
Last update: 2024-09-19 20:10:02 UTC
README
此Bundle扩展了symfony2 crud生成器
对于我的英语水平可能带来的不便,我深表歉意。
感谢Sonata项目,他们的代码激发了我如何做某些事情。
感谢Metronic - 响应式管理仪表板模板的制作者们,他们给予了我良好的待遇。
许可证
此Bundle采用MIT许可证。请参阅包中的完整许可证。
Resources/meta/LICENSE
安装
安装是一个简单的4步过程
- 配置Metronic Bundle(如有需要)
- 通过composer下载
- 启用Bundle
- 为Bundle生成所需的文件
- 扩展和配置它(可选)
步骤1. 配置Metronic Bundle(如有需要)
此软件包依赖于Ruudy - MetronicBundle
如果您没有遵循Metronic Bundle的安装步骤,您必须停止阅读此readme,首先安装并配置该bundle。
步骤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的骨架可以存储在应用程序的许多路径上,如果不是,我建议您阅读官方文档
默认情况下,此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
- 通过您的自己的Company/StoreBundle扩展bundle(注意您需要的视图)
- 使用在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 扩展包的安装步骤,否则你将看到未样式化的页面。