cekurte/doctrinebundle

A extension of features of the doctrine library

Maintainers

👁 jpcercal

Package info

github.com/jpcercal/doctrine-bundle

Homepage

Type:symfony-bundle

pkg:composer/cekurte/doctrinebundle

Statistics

Installs: 701

Dependents: 1

Suggesters: 0

Stars: 1

Open Issues: 0

v1.0.1 2016-05-03 19:45 UTC

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 3d964353fab17978b0514d17aa0329efeeac4e03

doctrinequerystringmultitenancy

This package is auto-updated.

Last update: 2026-06-16 06:28:02 UTC


README

👁 Build Status
👁 Code Climate
👁 Coverage Status
👁 Latest Stable Version
👁 License
👁 SensioLabsInsight

  • An extension to Doctrine DBAL that can be used to switch between database connections in runtime with Symfony 2, contribute with this project!

If you liked of this library, give me a star =).

Installation

  • The package is available on Packagist.
  • The source files is PSR-2 compatible.
  • Autoloading is PSR-4 compatible.
composer require cekurte/doctrinebundle

After, register the bundle in your AppKernel like this:

// app/AppKernel.php

// ...
public function registerBundles()
{
 $bundles = array(
 // ...
 new Cekurte\DoctrineBundle\CekurteDoctrineBundle(),
 // ...
 );

 // ...
 return $bundles;
}

Documentation

Well, firstly you must configure a doctrine database connection. So, add this in your config file.

# app/config/config.yml

# ...
doctrine:
 dbal:
 default_connection: dynamic
 connections:
 dynamic:
 driver: "%database_driver%"
 host: "%database_host%"
 port: "%database_port%"
 dbname: "%database_name%"
 user: "%database_user%"
 password: "%database_password%"
 charset: UTF8
 wrapper_class: "Cekurte\DoctrineBundle\DBAL\ConnectionWrapper"

After that, when you need change the database connection you can retrieve a service id named doctrine.dbal.dynamic_connection and call the method forceSwitch, see the example below.

<?php

namespace YourNamespace\YourBundleBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class YourController extends Controller
{
 public function indexAction()
 {
 // ...

 // Change the current database connection...
 $this
 ->get('doctrine.dbal.dynamic_connection')
 ->forceSwitch(
 $dbHost,
 $dbName,
 $dbUser,
 $dbPassword,
 $dbOptions
 )
 ;
 }
}

Contributing

  1. Give me a star =)
  2. Fork it
  3. Create your feature branch (git checkout -b my-new-feature)
  4. Make your changes
  5. Run the tests, adding new ones for your own code if necessary (vendor/bin/phpunit)
  6. Commit your changes (git commit -am 'Added some feature')
  7. Push to the branch (git push origin my-new-feature)
  8. Create new Pull Request