blast-project / doctrine-session-bundle
Store your Symfony sessions in database through doctrine
Installs: 1 955
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 4
Forks: 1
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=7.1
- doctrine/doctrine-bundle: >=1.6
- symfony/symfony: >=3.2
Requires (Dev)
- blast-project/core-bundle: 0.6.4
- blast-project/tests-bundle: 0.6.4
- phpunit/phpunit: ^6.4
- sonata-project/doctrine-orm-admin-bundle: >=3.1
- symfony/console: >=3.2
- symfony/phpunit-bridge: >=3.2
Suggests
- blast-project/core-bundle: Define sonata admins in yml and more
This package is not auto-updated.
Last update: 2024-12-21 21:52:44 UTC
README
The goal of this bundle is to make the use of Doctrine as session handler for Symfony
Installation
Downloading
$ composer require blast-project/doctrine-session-bundle
Add to your AppKernel
//... class AppKernel extends Kernel { public function registerBundles() { $bundles = [ //... new Blast\DoctrineSessionBundle\BlastDoctrineSessionBundle(), ]; //... } //... }
Doctrine
Configure your Doctrine connections
# app/config/config.yml doctrine: dbal: default_connection: default connections: default: driver: pdo_pgsql host: "%database_host%" port: "%database_port%" dbname: "%database_name%" user: "%database_user%" password: "%database_password%" charset: UTF8 session: # This will be the connection used by this bundle driver: pdo_pgsql host: "%database_host%" # Please adapt to your needs if you're using another database for sessions port: "%database_port%" dbname: "%database_name%" user: "%database_user%" password: "%database_password%" charset: UTF8 orm: default_entity_manager: default auto_generate_proxy_classes: "%kernel.debug%" entity_managers: default: connection: default naming_strategy: doctrine.orm.naming_strategy.underscore auto_mapping: true mappings: # Add here your mapping for your default entities # Example below : BlastBaseEntitiesBundle: type: yml session: connection: session naming_strategy: doctrine.orm.naming_strategy.underscore auto_mapping: false # Only one entity manager can have auto_mappping set to true mappings: BlastDoctrineSessionBundle: type: yml
Configure the framework session handler :
# app/config/config.yml framework: # [...] session: handler_id: blast_doctrine_handler
Database
$ php bin/console doctrine:database:create --connection=session
Or
$ php bin/console doctrine:schema:update --force --connection=session
Usage
use Blast\DoctrineSessionBundle\Handler\DoctrineORMHandler; use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage; //... $doctrinehandler = new DoctrineORMHandler( $this->get('doctrine'), 'Blast\DoctrineSessionBundle\Entity\Session'); $storage = new NativeSessionStorage( array(), $doctrinehandler ); $session = new Session($storage); $session->start(); //...
See
http://symfony.com/doc/current/components/http_foundation/session_configuration.html