1
votes

I am trying to configure ZendFramwork 2 to use MongoDB as the storage for user Authentication.

I already have installed what I believe are the correct modules and have a correctly installed instance of ZF2 running on Nginx. I also have an instance of Mongo running and I am already using this for another project. The modules declaration in application.config.php looks like this

'modules' => array( 'Application', 'ZfcBase', 'ZfcUser', 'ZfcUserDoctrineMongoODM', 'DoctrineModule', 'DoctrineMongoODMModule' )

Documentation is a bit thin on how to configure the system to get it working. Can anyone provide any code fragments around configuring the database settings to allow Mongo to run with ZfcUser, this is where I am at a loss now.

Any help, clues or cheat sheets would be greatly appreciated.

Darren Breeze

1
I suppose doctrine modules must be above Zfc modules. What is the error you got? Are you able to access page /user/register ?shukshin.ivan
The gap I have is the configuration for the database user collection. I can access the login pages from ZfcUser, but there of course is no database behind it.Darren B

1 Answers

1
votes

Have a look at Doctrine Mongo ODM module readme https://github.com/doctrine/DoctrineMongoODMModule :

copy vendor/doctrine/doctrine-mongo-odm-module/config/module.doctrine-mongo-odm.local.php.dist into your application's config/autoload directory, rename it to module.doctrine-mongo-odm.local.php and make the appropriate changes. With this config file you can configure your mongo connection, add extra annotations to register, add subscribers to the event manager, add filters to the filter collection, and drivers to the driver chain.

So you have something like this at your autoload config:

<?php
return array(
    'doctrine' => array(

        'connection' => array(
            'odm_default' => array(
                'server'           => 'localhost',
                'port'             => '27017',
//                'connectionString' => null,
//                'user'             => null,
//                'password'         => null,
//                'dbname'           => null,
//                'options'          => array()
            ),
        ),
....
'configuration' => array(
        'odm_default' => array(
         ... 'default_db'         => 'myappdb',
        )
)

So tune it and try to register at user/register. Collection name is user by default.