Skip to content

Commit 6ee1ebd

Browse files
committed
Merge pull request #3 from simensen/pimple-service-provider
Early migration to be ready for Pimple service provider
2 parents bfcb52b + 9e8b7c1 commit 6ee1ebd

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)