我正在遵循教程Creating a Basic CMS,当我为我的网站文档类创建自定义初始化程序时遇到困难,symfonycmf cook book页面中的文档使用doctrine / phpcr-bundle 1.0和i&# 39; m使用dev-master 1.1-dev,我使用dev-master版本的原因是因为使用该配置我的依赖项工作正常
答案 0 :(得分:0)
仔细检查了两个版本后,我意识到两个版本之间的差异并不大,在1.0版本中,Doctrine \ Bundle \ PHPCRBundle \ Initializer \ InitializerInterface在他的init中注入了一个PCR \ SessionInterface对象方法,那个会话对象就像doctrine orm的实体管理器一样,我认为,因为它执行save方法来预先设置odm,但是在当前的主版本中接口注入一个Doctrine \ Bundle \ PHPCRBundle \ ManagerRegistry并且用这个对象你可以使用$ session = $ registry-> getConnection()方法获取连接会话;这是代码示例。
class SiteInitializer implements InitializerInterface {
public function init(ManagerRegistry $registry) {
$session = $registry->getConnection();
NodeHelper::createPath($session, '/cms/pages');
NodeHelper::createPath($session, '/cms/posts');
NodeHelper::createPath($session, '/cms/routes');
$session->save();
$cms = $session->getNode('/cms');
$cms->setProperty(
'phpcr:class', 'Acme\BasicCmsBundle\Document\Site'
);
$session->save();
}
}
@dbu感谢你和你的tean在symfony cmf这项伟大的工作,我希望你能检查这个问题,如果你发现任何错误或错误,请纠正我们,如果我们做错了。