avris / micrus-doctrine
Micrus框架的Doctrine ORM桥梁
v4.0.0
2018-01-28 10:14 UTC
Requires
- avris/micrus: ^4.0
- doctrine/orm: ^2.6
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 = 8
的App\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'"
版权
- 作者:Andre Prusinowski (Avris.it)
- 许可: MIT