daniellehrner / meat-up
Symfony2 代码生成器
Requires
- doctrine/annotations: ^1.0
- doctrine/orm: ^2.0
- symfony/filesystem: ^2.8|^3.0
- symfony/framework-bundle: ^2.8|^3.0
- twig/twig: ^1.0|^2.0
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^5.7|^6.0
README
MeatUp Bundle 是一个 Symfony 扩展包,它提供了一个命令,用于根据 Doctrine 实体生成 CRUD 控制器。它使用 inter-Punkt 的 Symfony 框架应用程序作为起始基础。扩展包将为您生成以下文件:
- 基于 Doctrine 实体和一些 MeatUps 注解的表单类型
- CRUD 操作的控制器
- 所有记录的表格展示视图文件
- 创建和更新记录的视图文件
基本用法
本指南将向您展示如何从简单的 Doctrine 实体生成 CRUD 控制器。
以下是您需要执行的步骤摘要
步骤 1:创建一个简单的 Doctrine 实体
<?php // File: src/DevPro/adminBundle/Entity/Meatup.php namespace DevPro\adminBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity */ class Meatup { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @ORM\Column(type="string") */ private $title; /** * @ORM\Column(type="text") */ private $content; ... }
上面的例子是一个非常基础的 Doctrine 实体。如果您不理解其中的所有内容,您可以在Doctrine 文档中找到更多信息。
现在,您可以使用 Doctrine 命令为您创建 getter 和 setter 方法
$ php app/console doctrine:generate:entities DevProadminBundle:Meatup
现在实体类已经完整,您可以在数据库中创建表
$ php app/console doctrine:schema:update --force
步骤 2:执行 MeatUp 命令
现在一切准备就绪,可以使用 MeatUp 命令并使用完全限定的类名作为参数来生成 CRUD 控制器
$ php app/console ip:meat-up "DevPro\adminBundle\Entity\Meatup"
在命令成功完成后,您可以启动您的 web 服务器并检查控制器。如果您不知道如何启动内置的 Web 服务器,请参阅 Symfony 文档。
如果您的 Web 服务器正在运行 localhost:8000,请在浏览器中输入以下 URL
https://:8000/admin/meatup
现在您可以点击带有“Neuer Eintrag”(新条目)标签的按钮来创建新记录。创建新记录后,您将被重定向到概览页面。在那里,您会看到有新的记录,并且可以点击“Bearbeiten”(编辑)按钮来编辑它,但没有列来指示这是哪个记录。
步骤 3:添加 OnIndex 注解
由于 MeatUp 命令无法猜测您希望将实体的哪些属性显示在概览页面上,您需要添加 OnIndex 注解来告诉包该属性应该显示在概览页面上。幸运的是,我们只需要在上面的实体中添加两行代码来完成这个任务。
首先,我们需要导入 MeatUp 命名空间并为其添加一个别名
... use Doctrine\ORM\Mapping as ORM; use Ip\MeatUp\Mapping as MU; ...
现在,我们将 OnIndex 注解添加到标题属性上
... /** * @ORM\Column(type="string") * @MU\OnIndexPage */ private $title; ...
就是这样!现在我们再次执行 MeatUp 命令,并在重新加载网站后,标题将显示在包含我们之前创建的记录的概览页面上
$ php app/console ip:meat-up "DevPro\adminBundle\Entity\Meatup"
您现在已经知道如何使用 MeatUp 命令创建简单的 CRUD 控制器。有关更高级的用法,请参阅 文档。
用法
有关完整用法文档,请参阅
需求
- Symfony 2.8.* 框架应用程序
- Symfony 框架扩展包
- Twig
- Doctrine 注解
- Symfony 文件系统
- IvoryCKEditorBundle
- VichUploaderBundle
许可证
请参阅附带文件 LICENSE。