dcs/user-persistence-orm-bundle
DCSUserPersistenceORMBundle 为 DCSUserCoreBundle 添加功能,并提供使用 Doctrine ORM 在数据库上实现持久化的实现
Requires
- php: >=5.3.9
- doctrine/doctrine-bundle: ^1.6
- doctrine/orm: ^2.5
Requires (Dev)
- dcs/user-core-bundle: ~1.0@dev
- phpunit/phpcov: 3.*
- phpunit/phpunit: ^5
- satooshi/php-coveralls: ~1.0
- symfony/security: ~2.8|~3.0
This package is not auto-updated.
Last update: 2024-09-14 19:25:33 UTC
README
DCSUserPersistenceORMBundle
DCSUserPersistenceORMBundle 提供了通过 DoctrineORM 的最终持久化实现。
为此,此包将监听由 Save 和 Delete 方法发出的两个特定事件,这些方法由 DCSUserCoreBundle 发出。基于与 DCS 相关包的基本思想是添加监听发出事件的函数。
此包提供了仓库服务的实现,并对 User 类进行映射。
仓库
dcs_user.persistence.orm.repository
服务是实现 DCS\User\CoreBundle\Repository\UserRepositoryInterface
接口的实现。此服务可以在 dcs_user_core 设置中的 repository_service 参数中设置。
dcs_user_core:
repository_service: dcs_user.persistence.orm.repository
事件
事件列表的完整列表位于 DCS\User\Persistence\ORMBundle\DCSUserPersistenceORMEvents
类中。
安装
先决条件
此包需要 DCSUserCoreBundle。
要求包
运行以下命令
$ composer require dcs/user-persistence-orm-bundle "~1.0@dev"
Composer 将将包安装到您的项目的 vendor/dcs/user-persistence-orm-bundle
目录。
启用包
在内核中启用包
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new DCS\User\Persistence\ORMBundle\DCSUserPersistenceORMBundle(),
// ...
);
}
创建您的用户类
您必须提供一个具体的用户类。您必须扩展由 DCSUserCoreBundle 提供的抽象模型 DCS\User\CoreBundle\Model\User
并创建适当的映射。
注解
<?php
// src/AcmeBundle/Entity/User.php
namespace AcmeBundle\Entity;
use DCS\User\CoreBundle\Model\User as UserBase;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="dcs_user")
*/
class User extends UserBase
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
}
Yaml
# src/AcmeBundle/Resources/config/doctrine/User.orm.yml
AcmeBundle\Entity\User:
type: entity
table: dcs_user
id:
id:
type: integer
generator:
strategy: AUTO
Xml
<?xml version="1.0" encoding="utf-8"?>
<!-- src/AcmeBundle/Resources/config/doctrine/User.orm.xml -->
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="AcmeBundle\Entity\User" table="dcs_user">
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>
</entity>
</doctrine-mapping>
配置
现在您已正确启用此包,下一步是配置它。
将以下配置添加到您的 config.yml
。
dcs_user_core:
model_class: AcmeBundle\Entity\User
repository_service: dcs_user.persistence.orm.repository