2017 © Pedro PelĂĄez
 

library doctrine2bridge

Adds the the power of Doctrine2 to Laravel 4 (with support for SQL logging and authentication)

image

opensolutions/doctrine2bridge

Adds the the power of Doctrine2 to Laravel 4 (with support for SQL logging and authentication)

  • Friday, September 25, 2015
  • by barryo
  • Repository
  • 2 Watchers
  • 13 Stars
  • 978 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 7 Versions
  • 1 % Grown

The README.md

Doctrine2Bridge

Adds the power of Doctrine2 to Laraval 4 (including authentication and SQL query logging support)., (*1)

Laravel's Eloquent ORM is nice for lightweight use, however there's little out there that can beat Doctrine when you need a more full-featured ORM., (*2)

This is an integration of Doctrine 2.x to Laravel 4.x as a composer package. Doctrine's EntityManager instance is accessible through a facade named D2EM and the cache is directly available via D2Cache., (*3)

Metadata is currently obtained via the XML driver. It should be easy to add additional drivers to this., (*4)

Authentication support is also included via a Auth/Doctrine2UserProvider class. Documentation on integrating this with Laravel's own authentication system can be found here., (*5)

Installation

Installation is the usual for Laravel packages. You can find a detailed worked version of how to install and test in the wiki., (*6)

Insert the following in the packages (require) section of your composer.json file and run an update (composer update):, (*7)

"opensolutions/doctrine2bridge": "2.4.*",

Generally speaking, we'll try and match our minor versions (2.4.x) with Doctrine's but you should always use the latest x version of this., (*8)

Note that your minimum stability must be dev for Doctrine migrations. If the above command complains, ensure you have the following set in your composer.json file:, (*9)

"minimum-stability": "dev"

Add the service providers to your Laravel application in app/config/app.php. In the 'providers' array add:, (*10)

'Doctrine2Bridge\Doctrine2CacheBridgeServiceProvider',
'Doctrine2Bridge\Doctrine2BridgeServiceProvider',

You'll need to public and edit the configuration file:, (*11)

./artisan config:publish opensolutions/doctrine2bridge

This should get you a fresh copy of the configuration file in the directory app:, (*12)

config/packages/vendor/opensolutions/doctrine2bridge

Documentation on integrating this with Laravel's own authentication system can be found here., (*13)

Usage

Two facades are provided - one for the Doctrine2 cache and the other for the entity manager. These can be used as follows:, (*14)

D2Cache::save( $key, $value );
D2Cache::fetch( $key );

D2EM::persist( $object );
D2EM::flush();
$users = D2EM::getRepository( 'Entities\User' )->findAll();

More Detailed Usage

The configuration file by default expects to find XML schema definitions under doctrine/schema. Let's say for example we have a single schema file called doctrine/schema/Entities.SampleEntity.dcm.xml containing:, (*15)

<?xml version="1.0"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xsi="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
    <entity name="Entities\SampleEntity" repository-class="Repositories\Sample">
        <id name="id" type="integer">
            <generator strategy="AUTO"/>
        </id>
        <field name="name" type="string" length="255" nullable="true"/>
    </entity>
</doctrine-mapping>

Assuming you've configured your database connection parameters in the config file and you're positioning in the base directory of your project, we can create the entities, proxies and repositories with:, (*16)

./vendor/bin/doctrine2 orm:generate-entities app/models/
./vendor/bin/doctrine2 orm:generate-proxies
./vendor/bin/doctrine2 orm:generate-repositories app/models/

You can also (drop) and create the database with:, (*17)

./vendor/bin/doctrine2 orm:schema-tool:drop --force
./vendor/bin/doctrine2 orm:schema-tool:create

Now you can add some data to the database:, (*18)

$se = new Entities\SampleEntity;
$se->setName( rand( 0, 100 ) );
D2EM::persist( $se );
D2EM::flush();

And query it:, (*19)

echo count( D2EM::getRepository( 'Entities\SampleEntity' )->findAll() );

I use the excellent ORM Designer to create and manage my XML schema files., (*20)

Convenience Function for Repositories

If, like me, you spend a lot of time typing D2EM::getRepository( 'Entities\XXX' ), then add the following to the end of bootstrap/start.php:, (*21)

include $app['path.base'] . '/vendor/opensolutions/doctrine2bridge/src/bootstrap/d2r.php';

and then you can replace the above with: D2R( 'XXX' ). I use Entities as my namespace generally so this function is just as follows (which you can easily change to suit yourself):, (*22)

function D2R( $entity, $namespace = 'Entities' )
{
    return D2EM::getRepository( $namespace . '\\' . $entity );
}

SQL Query Logging

This package includes an implementation of Doctrine\DBAL\Logging\SQLLlogger which times the queries and calls the Laravel Log facade to log the query execution times and the SQL queries., (*23)

This logger can be enabled in the configuration file., (*24)

 License

Like the Laravel framework itself, this project is open-sourced under the MIT license., (*25)

The Versions

25/09 2015

dev-master

9999999-dev https://github.com/opensolutions/doctrine2bridge

Adds the the power of Doctrine2 to Laravel 4 (with support for SQL logging and authentication)

  Sources   Download

MIT

The Requires

 

laravel doctrine doctrine2

26/04 2014

v2.4.5

2.4.5.0 https://github.com/opensolutions/doctrine2bridge

Adds the the power of Doctrine2 to Laravel 4 (with support for SQL logging and authentication)

  Sources   Download

MIT

The Requires

 

laravel doctrine doctrine2

27/01 2014

v2.4.4

2.4.4.0

https://github.com/opensolutions/doctrine2bridge

  Sources   Download

MIT

The Requires

 

laravel doctrine doctrine2

22/01 2014

v2.4.3

2.4.3.0

https://github.com/opensolutions/doctrine2bridge

  Sources   Download

MIT

The Requires

 

laravel doctrine doctrine2

21/01 2014

v2.4.2

2.4.2.0

https://github.com/opensolutions/doctrine2bridge

  Sources   Download

MIT

The Requires

 

laravel doctrine doctrine2

20/01 2014

v2.4.1

2.4.1.0

https://github.com/opensolutions/doctrine2bridge

  Sources   Download

MIT

The Requires

 

laravel doctrine doctrine2

20/01 2014

v2.4.0

2.4.0.0

https://github.com/opensolutions/doctrine2bridge

  Sources   Download

MIT

The Requires

 

laravel doctrine doctrine2