paolooo / laravel-doctrine
Doctrine 2 for Laravel 5 Artisans
0.4.0
2015-04-08 04:16 UTC
Requires
- php: >=5.4.0
- doctrine/orm: ~2.4
- laravel/framework: 5.0.*
- php-daddy/contract-singleton: *
- php-daddy/contracts: *
Requires (Dev)
- mockery/mockery: 0.9.*@dev
This package is not auto-updated.
Last update: 2024-09-28 16:31:09 UTC
README
使用 $ 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/
目录。
- 示例配置文件,查看
.env
和phpunit.xml
文件。 - 示例
User
实体类,查看Acme/Domain/Model/Entity/User.php
文件。 - 示例
ModelTestCase
。这将为您设置 doctrine。设置$this->entityManager
。创建和删除模式。
在此学习 doctrine http://doctrine-orm.readthedocs.org/en/latest/tutorials/getting-started.html
待办事项
- 迁移