avris / micrus-doctrine

Micrus框架的Doctrine ORM桥梁

v4.0.0 2018-01-28 10:14 UTC

This package is auto-updated.

Last update: 2024-08-29 04:25:23 UTC


README

这是一个Micrus框架的模块,允许您将其与Doctrine ORM集成。

安装

运行

composer require avris/micrus-doctrine

然后在您的App\App:registerModules中注册模块

yield new \Avris\Micrus\Doctrine\DoctrineModule;

最后,运行

bin/env

您将需要输入连接字符串,它将被保存在.env文件中。

EntityManager

DoctrineManager将扫描所有模块中的/src/Entity目录,如果存在,则自动将此目录中的所有类注册为Doctrine实体。

Doctrine的EntityManager已在容器中注册为Doctrine\ORM\EntityManagerInterface

public function incrementStuffAction(EntityManagerInterface $em)
{
    $stuff = $em->getRepository('Stuff')->findBySomeCustomCondition();
    $stuff->incrementValue();
    $em->persist($stuff);
    $em->flush();
    $this->addFlash('success', 'Stuff incremented successfully');

    return $this->redirectToRoute('home');
}

UserProvider

此模块将Doctrine注册为UserProvider。它将尝试使用email作为标识符从App\Entity\User仓库中查找用户。要修改这些值,请使用容器

Avris\Micrus\Doctrine\DoctrineUserProvider:
  arguments:
    $column: username

MatchProvider

如果控制器参数是实体,Doctrine会自动匹配这些参数,例如

/**
 * @M\Route("/post/{int:id}/read")
 */
public function readAction(Post $post) { }

对于请求GET /post/8/read,将尝试查找具有id = 8App\Entity\Post,如果成功则返回,如果失败则抛出NotFoundHttpException

控制台

一些Doctrine控制台命令在bin/micrus下的db命名空间中可用

php bin/micrus db:schema:create
php bin/micrus db:schema:update
php bin/micrus db:schema:validate
php bin/micrus db:schema:drop
 
php bin/micrus db:query:sql "SELECT * FROM user"
php bin/micrus db:query:dql "SELECT u FROM App\Model\User u WHERE u.role='ROLE_ADMIN'"

版权