brtriver/simple-crud-bundle

为Symfony2提供的简单CRUD trait控制器类

dev-master 2015-02-25 14:42 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:34:50 UTC


README

SimpleCrudBundle是一个Symfony2 Bundle。该Bundle通过特性提供了在控制器中进行CRUD的简单操作。您可以通过@Crud注解来指定模板和实体/存储库

<?php
namespace Brtriver\SimpleCrudBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Brtriver\SimpleCrudBundle\Controller\SimpleCrudTraitController;
use Brtriver\SimpleCrudBundle\Annotation\Crud;

/**
 * @Route("/simple_crud", name="simple_crud_demo")
 * @Crud(
 *   entity="Brtriver\SimpleCrudBundle\Entity\Demo",
 *   repository="BrtriverSimpleCrudBundle:Demo",
 *   template_list="BrtriverSimpleCrudBundle:Demo:list.html.twig",
 *   template_new="BrtriverSimpleCrudBundle:Demo:new.html.twig",
 *   template_edit="BrtriverSimpleCrudBundle:Demo:edit.html.twig",
 *   template_show="BrtriverSimpleCrudBundle:Demo:show.html.twig",
 *   form="Brtriver\SimpleCrudBundle\Form\DemoType"
 * )
 */
class DemoController extends Controller
{
    use SimpleCrudTraitController;

    /**
     * @Route("/")
     */
    public function indexAction()
    {
        return new Response('hello world');
    }

}

    ...

特性中的这些操作只是模板,所以您需要在您自己的模板中编写逻辑并使用@Crud注解。如果想要覆盖CRUD操作,只需编写您的listActionshowActionnewActioneditAction方法。

您可以在Brtriver\SimpleCrudBundle\Controller\DemoController类中查看示例控制器代码。

需求

SimpleCrudBundle与PHP 5.4.0或更高版本兼容。

安装

通过Packagist安装https://packagist.org.cn/packages/brtriver/simple-crud-bundle

$ php composer.phar require brtriver/simple-crud-bundle:dev-master

将此Bundle添加到您的app/AppKernel.php

public function registerBundles() {
  $bundles = array(
    new Brtriver\SimpleCrudBundle\BrtriverSimpleCrudBundle(),
  );
}

演示

为了能够访问演示页面,您需要将其路由添加到应用程序的路由文件中

_simple_crud:
    resource: "@BrtriverSimpleCrudBundle/Resources/config/routing.yml"
    prefix:   /_simple_crud

清除缓存后,您只需访问浏览器即可

http://127.0.0.1:8000/_simple_crud/demo/list

如果您想查看新/编辑页面,您需要配置数据库设置和demo表,因此请检查Entity/Demo.php中的实体

用法

使用SimpleCrudTraitController

在您想要添加CRUD方法的控制器中添加use语句。

use SimpleCrudTraitController;

@Crud 注解

SimpleCrudTrait的行为由@Crud注解定义。

  • entity:目标实体类名称(例如,entity="Brtriver\SimpleCrudBundle\Entity\Demo")
  • repository:实体的目标存储库(例如,repository="BrtriverSimpleCrudBundle:Demo")
  • form:实体的类型类(例如,form="Brtriver\SimpleCrudBundle\Form\DemoType")
  • template_list:列表视图模板路径(例如,template_list="BrtriverSimpleCrudBundle:Demo:list.html.twig")
  • template_new:新视图模板路径(例如,template_new="BrtriverSimpleCrudBundle:Demo:new.html.twig")
  • template_show:显示视图模板路径(例如,template_new="BrtriverSimpleCrudBundle:Demo:show.html.twig")
  • template_edit:编辑视图模板路径(例如,template_new="BrtriverSimpleCrudBundle:Demo:edit.html.twig")

然后,在您的Bundle中编写实体、存储库、FormType和每个模板。SimpleCrudBundle让您编写最少的代码。

重写操作方法

如果您想要更改每个操作方法的操作行为,您可以直接在控制器中重写每个方法。

    /**
     * list page of json
     *
     * @Route("/list")
     */
    public function listAction()
    {
        $entities = $this->getRepository()->findAll();

        return new JsonResponse($entities);
    }

许可证

SimpleCrudBundle采用MIT许可证。