dcs/user-persistence-orm-bundle

DCSUserPersistenceORMBundle 为 DCSUserCoreBundle 添加功能,并提供使用 Doctrine ORM 在数据库上实现持久化的实现

dev-master / 1.0.x-dev 2017-01-01 10:08 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:25:33 UTC


README

Build Status Coverage Status

DCSUserPersistenceORMBundle

DCSUserPersistenceORMBundle 提供了通过 DoctrineORM 的最终持久化实现。

为此,此包将监听由 SaveDelete 方法发出的两个特定事件,这些方法由 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