Skip to content

Commit 9e8b7c1

Browse files
committed
Early migration to be ready for Pimple service provider
Leave door open for integration into other Pimple based projects. Added Cilex service provider.
1 parent bfcb52b commit 9e8b7c1

File tree

9 files changed

+624
-331
lines changed

9 files changed

+624
-331
lines changed

README.md

Lines changed: 60 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
Doctrine ORM Service Provider
22
=============================
33

4-
Provides Doctrine ORM Entity Managers as services to Silex applications.
4+
Provides Doctrine ORM Entity Managers as services to Pimple applications.
55

66

77
Features
88
--------
99

10-
* Leverages the core [Doctrine Service Provider][1]
10+
* Leverages the core [Doctrine Service Provider][1] for either
11+
Silex or Cilex.
1112
* Default Entity Manager can be bound to any database connection
1213
* Multiple Entity Managers can be defined
1314
* Mechanism for allowing Service Providers to register their own
@@ -22,7 +23,8 @@ Requirements
2223

2324
The [Doctrine Service Provider][1] (or something looking a whole lot
2425
like it) **must** be available in order for Doctrine ORM Service
25-
Provider to function properly. Currently requires both **dbs** and **dbs.event_manager** services in order to work. If you can or want
26+
Provider to function properly. Currently requires both **dbs** and
27+
**dbs.event_manager** services in order to work. If you can or want
2628
to fake it, go for it. :)
2729

2830

@@ -39,7 +41,7 @@ for **orm.generate_psr0_mapping** for more information.
3941
Installation
4042
------------
4143

42-
Through [Composer](http://getcomposer.org)
44+
Through [Composer](http://getcomposer.org) as [dflydev/doctrine-orm-service-provider][7].
4345

4446

4547
Usage
@@ -49,6 +51,59 @@ To get up and running, register `DoctrineOrmServiceProvider` and
4951
manually specify the directory that will contain the proxies along
5052
with at least one mapping.
5153

54+
### Pimple
55+
56+
```php
57+
<?php
58+
59+
use Dflydev\Pimple\Provider\DoctrineOrm\DoctrineOrmServiceProvider;
60+
61+
$container = new \Pimple;
62+
63+
$container["db.options"] = array(
64+
"driver" => "pdo_sqlite",
65+
"path" => "/path/to/sqlite.db",
66+
);
67+
68+
// ensure that $container['dbs'] and $container['dbs.event_manager']
69+
// are available, most likely by way of a core service provider.
70+
71+
$container["orm.proxies_dir"] = "/path/to/proxies";
72+
$container["orm.em.options"] = array(
73+
"mappings" => array(
74+
// Using actual filesystem paths
75+
array(
76+
"type" => "annotation",
77+
"namespace" => "Foo\Entities",
78+
"path" => __DIR__."/src/Foo/Entities",
79+
),
80+
array(
81+
"type" => "xml",
82+
"namespace" => "Bat\Entities",
83+
"path" => __DIR__."/src/Bat/Resources/mappings",
84+
),
85+
// Using PSR-0 namespaceish embedded resources
86+
// (requires registering a PSR-0 Resource Locator
87+
// Service Provider)
88+
array(
89+
"type" => "annotations",
90+
"namespace" => "Baz\Entities",
91+
"resources_namespace" => "Baz\Entities",
92+
),
93+
array(
94+
"type" => "xml",
95+
"namespace" => "Bar\Entities",
96+
"resources_namespace" => "Bar\Resources\mappings",
97+
),
98+
),
99+
);
100+
101+
$doctrineOrmServiceProvider = new DoctrineOrmServiceProvider;
102+
$doctrineormServiceProvider->register($container);
103+
```
104+
105+
### Silex
106+
52107
```php
53108
<?php
54109

@@ -303,6 +358,7 @@ Some inspiration was also taken from [Doctrine Bundle][4] and
303358
[4]: https://github.com/doctrine/DoctrineBundle
304359
[5]: https://github.com/symfony/symfony/tree/master/src/Symfony/Bridge/Doctrine
305360
[6]: http://github.com/dflydev/dflydev-psr0-resource-locator-service-provider
361+
[7]: https://packagist.org/packages/dflydev/doctrine-orm-service-provider
306362

307363
[#dflydev]: irc://irc.freenode.net/#dflydev
308364
[#silex-php]: irc://irc.freenode.net/#silex-php

composer.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,20 @@
1717
],
1818
"require": {
1919
"php": ">=5.3.3",
20-
"silex/silex": "1.*@dev",
20+
"pimple/pimple": "1.*@dev",
2121
"doctrine/orm": "~2.3"
2222
},
23+
"require-dev": {
24+
"cilex/cilex": "1.*@dev",
25+
"silex/silex": "1.*@dev"
26+
},
2327
"suggest": {
2428
"dflydev/psr0-resource-locator-service-provider": "1.0.*@dev"
2529
},
2630
"autoload": {
2731
"psr-0": {
32+
"Dflydev\\Cilex\\Provider\\DoctrineOrm": "src",
33+
"Dflydev\\Pimple\\Provider\\DoctrineOrm": "src",
2834
"Dflydev\\Silex\\Provider\\DoctrineOrm": "src"
2935
}
3036
},

phpunit.xml.dist

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<phpunit colors="true" bootstrap="vendor/autoload.php">
33
<testsuites>
4-
<testsuite name="Doctrine ORM Silex Service Provider Test Suite">
4+
<testsuite name="Doctrine ORM Service Provider Test Suite">
5+
<directory>./tests/Dflydev/Cilex/Provider/DoctrineOrm</directory>
6+
<directory>./tests/Dflydev/Pimple/Provider/DoctrineOrm</directory>
57
<directory>./tests/Dflydev/Silex/Provider/DoctrineOrm</directory>
68
</testsuite>
79
</testsuites>
810

911
<filter>
1012
<whitelist>
13+
<directory>./src/Dflydev/Cilex/Provider/DoctrineOrm/</directory>
14+
<directory>./src/Dflydev/Pimple/Provider/DoctrineOrm/</directory>
1115
<directory>./src/Dflydev/Silex/Provider/DoctrineOrm/</directory>
1216
</whitelist>
1317
</filter>
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
3+
/*
4+
* This file is a part of dflydev/doctrine-orm-service-provider.
5+
*
6+
* (c) Dragonfly Development Inc.
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Dflydev\Cilex\Provider\DoctrineOrm;
13+
14+
use Dflydev\Pimple\Provider\DoctrineOrm\DoctrineOrmServiceProvider as PimpleDoctrineOrmServiceProvider;
15+
use Cilex\Application;
16+
use Cilex\ServiceProviderInterface;
17+
18+
/**
19+
* Doctrine ORM Cilex Service Provider.
20+
*
21+
* @author Beau Simensen <[email protected]>
22+
*/
23+
class DoctrineOrmServiceProvider implements ServiceProviderInterface
24+
{
25+
/**
26+
* {@inheritdoc}
27+
*/
28+
public function boot(Application $app)
29+
{
30+
}
31+
32+
/**
33+
* {@inheritdoc}
34+
*/
35+
public function register(Application $app)
36+
{
37+
$pimpleServiceProvider = new PimpleDoctrineOrmServiceProvider;
38+
$pimpleServiceProvider->register($app);
39+
}
40+
}

0 commit comments

Comments
 (0)