我想ZF2素β3教义蒙戈ODM(https://github.com/doctrine/DoctrineMongoODMModule),但没有sucess整合。
我该如何安装和配置呢?
我想ZF2素β3教义蒙戈ODM(https://github.com/doctrine/DoctrineMongoODMModule),但没有sucess整合。
我该如何安装和配置呢?
我做一样的事情。 像这样的东西应该工作:
下载您的供应商文件夹中的模块和地点。
添加模块application.config.php
复制module.doctrine_mongodb.config.php.dist到/配置/自动加载
编辑配置文件与您自己的设置
更改配置文件的名称module.doctrine_mongodb.local.config.php
创建你的控制器这样的“setDocumentManager”的方法:
protected $documentManager;
public function setDocumentManager(DocumentManager $documentManager)
{
$this->documentManager = $documentManager;
return $this;
}
放在你的模块的DI配置如下:
'Application\Controller\[YourControllerClass]' => array(
'parameters' => array(
'documentManager' => 'mongo_dm'
)
),
:根据教义2文档,并澄清这个问题,答案创建文档类为Zend框架2未加载注释命名空间DoctrineMongoODMModule
最后,这样使用DM:
public function indexAction()
{
$dm = $this->documentManager;
$user = new User();
$user->set('name', 'testname');
$user->set('firstname', 'testfirstname');
$dm->persist($user);
$dm->flush();
return new ViewModel();
}
我会给我所做的ZF2与MongoDB的学说ODM整合步骤
1.下载在供应商目录MongoDB的学说ODM模块和地点或从GitHub克隆它
cd /path/to/project/vendor
git clone --recursive https://github.com/doctrine/DoctrineMongoODMModule.git
2.复印从/path/to/project/vendor/DoctrineMongoODMModule/config/module.doctrine_mongodb.config.php.dist文件,放置在您的路径/到/你/项目/配置/自动加载/重命名为module.doctrine_mongodb .local.config.php
3.Edit您module.doctrine_mongodb.local.config.php。 更改默认数据库
'config' => array(
// set the default database to use (or not)
'default_db' => 'myDbName'
),
更改连接PARAMS
'connection' => array(
//'server' => 'mongodb://<user>:<password>@<server>:<port>',
'server' => 'mongodb://localhost:27017',
'options' => array()
),
更改驱动程序选项
'driver' => array(
'class' => 'Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver',
'namespace' => 'Application\Document',
'paths' => array('module/Application/src/Application/Document'),
),
添加代理和hydratros配置
'mongo_config' => array(
'parameters' => array(
'opts' => array(
'auto_generate_proxies' => true,
'proxy_dir' => __DIR__ . '/../../module/Application/src/Application/Document/Proxy',
'proxy_namespace' => 'Application\Model\Proxy',
'auto_generate_hydrators' => true,
'hydrator_dir' => __DIR__ . '/../../module/Application/src/Application/Document/Hydrators',
'hydrator_namespace' => 'Application\Document\Hydrators',
'default_db' => $settings['config']['default_db'],
),
'metadataCache' => $settings['cache'],
)
),
4.Create一个名为/路径“文档”目录/至/项目/模块/应用/ src目录/应用/哪里去你的文件映射和里面的“文档”目录下,建立“代理”和“Hydrators”目录。
5.Edit您/path/to/project/config/application.config.php,并添加“DoctrineMongoODMModule”到模块阵列
6.Be确保已安装蒙戈PHP扩展,否则下载的http://www.php.net/manual/en/mongo.installation.php#mongo.installation.windows并将它复制到你的扩展PHP目录,通常为/ PHP /分机。 添加延长线acording你已经在你的php.ini下载“延长= php_mongo-XXX-5.x的-vc9.dll”名称的文件扩展名。
7.Create您的文档目录应用程序模块中的文件映射user.php的。
<?php
namespace Application\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
/** @ODM\Document */
class User
{
/** @ODM\Id */
private $id;
/** @ODM\Field(type="string") */
private $name;
/**
* @return the $id
*/
public function getId() {
return $this->id;
}
/**
* @return the $name
*/
public function getName() {
return $this->name;
}
/**
* @param field_type $id
*/
public function setId($id) {
$this->id = $id;
}
/**
* @param field_type $name
*/
public function setName($name) {
$this->name = $name;
}
}
8.Persist它,例如在你的控制器
<?php
namespace Application\Controller;
use Zend\Mvc\Controller\ActionController,
Zend\View\Model\ViewModel,
Application\Document\User;
class IndexController extends ActionController
{
public function indexAction()
{
$dm = $this->getLocator()->get('mongo_dm');
$user = new User();
$user->setName('Bulat S.');
$dm->persist($user);
$dm->flush();
return new ViewModel();
}
}
现在默认的配置发生了变化,你可以展示一个更新的方法来获得在ZF2这方面的工作?
<?php
return array(
'doctrine' => array(
'connection' => array(
'odm_default' => array(
'server' => 'localhost',
'port' => '27017',
'user' => null,
'password' => null,
'dbname' => 'user',
'options' => array()
),
),
'configuration' => array(
'odm_default' => array(
'metadata_cache' => 'array',
'driver' => 'odm_default',
'generate_proxies' => true,
'proxy_dir' => 'data/DoctrineMongoODMModule/Proxy',
'proxy_namespace' => 'DoctrineMongoODMModule\Proxy',
'generate_hydrators' => true,
'hydrator_dir' => 'data/DoctrineMongoODMModule/Hydrator',
'hydrator_namespace' => 'DoctrineMongoODMModule\Hydrator',
'default_db' => null,
'filters' => array() // array('filterName' => 'BSON\Filter\Class')
)
),
'driver' => array(
'odm_default' => array(
'drivers' => array()
)
),
'documentmanager' => array(
'odm_default' => array(
'connection' => 'odm_default',
'configuration' => 'odm_default',
'eventmanager' => 'odm_default'
)
),
'eventmanager' => array(
'odm_default' => array(
'subscribers' => array()
)
),
),
);
当前正在接收的错误:类“应用程序\文献\用户”链中的配置的命名空间没有被发现