paolooo/laravel-doctrine

Doctrine 2 for Laravel 5 Artisans

0.4.0 2015-04-08 04:16 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:31:09 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License Build Status

使用 $ php artisan doctrine <command> <options> 轻松运行所有 doctrine 命令。

此服务将获取您的 laravel 配置(数据库和缓存),并自动应用于 doctrine2 配置,无需更多繁琐的配置。 :)

  • 支持所有 Doctrine 命令行。
  • 支持多个数据库连接。

安装

$ composer require "paolooo/laravel-doctrine":"0.4.*@dev"

打开并编辑 config/app.php 配置文件,并将以下服务提供者代码添加到 $providers 数组中。

        'Paolooo\LaravelDoctrine\LaravelDoctrineServiceProvider',

编辑 .env 文件。添加以下 doctrine 配置。有关 doctrine 配置的更多信息,请参阅,http://doctrine-orm.readthedocs.org/en/latest/reference/advanced-configuration.html

# .env
...

DOCTRINE_PROXY_AUTOGENERATED=false
DOCTRINE_PROXY_NAMESPACE=Acme\Domain\Model\Proxy
DOCTRINE_PROXY_DIR=app/Domain/Model/Proxy
DOCTRINE_MAPPING_DIR=app/Domain/Model

# READ
READ_DB_DATABASE=cqrs_read_db
READ_DOCTRINE_PROXY_AUTOGENERATED=false
READ_DOCTRINE_PROXY_NAMESPACE=app\Query\Model\Proxy
READ_DOCTRINE_PROXY_DIR=app/Query/Model/Proxy
READ_DOCTRINE_MAPPING_DIR=app/Query/Model

此配置适用于测试环境。编辑 phpunit.xml 文件。

# phpunit.xml

<?xml version="1.0" encoding="UTF-8"?>
<phpunit ...>
    ....
    <php>
        ...
        <env name="DB_DRIVER" value="pdo_sqlite"/>
        <env name="DB_DATABASE" value="storage/tests/db.sqlite"/>
        <env name="READ_DB_DATABASE" value="storage/tests/db_read.sqlite"/>
    </php>
</phpunit>

用法

<?php

# Create new EntityManager
$em = \App::make('Doctrine\ORM\EntityManager');

# Saving user entity to a 'default' database connection
# you can use `$em->on('default')` as well.
$em->getRepository('Paolooo\Acme\Domain\Entity\User')->persist($user);
$em->flush();

# Saving user entity to a 'read' database
$em->on('read')
    ->getRepository('Paolooo\Acme\Domain\Entity\User')
    ->persist($user);
$em->on('read')->flush();

多连接

$em = \App::make('Doctrine\ORM\EntityManager');
...
$em->on('read')->persist($user);
$em->on('read')->flush();

$em->on('eventStore')->persist($user);
$em->on('eventStore')->flush();

运行 Doctrine 命令

示例 artisan 命令。

$ php artisan doctrine
$ php artisan doctrine help orm:schema-tool:create
$ php artisan doctrine orm:schema-tool:create
$ php artisan doctrine orm:schema-tool:create --dump-sql
$ php artisan doctrine orm:schema-tool:update
$ php artisan doctrine orm:schema-tool:drop

示例

查看 examples/ 目录。

  • 示例配置文件,查看 .envphpunit.xml 文件。
  • 示例 User 实体类,查看 Acme/Domain/Model/Entity/User.php 文件。
  • 示例 ModelTestCase。这将为您设置 doctrine。设置 $this->entityManager。创建和删除模式。

在此学习 doctrine http://doctrine-orm.readthedocs.org/en/latest/tutorials/getting-started.html

待办事项

  • 迁移