0

I`m following the tutorial Creating a Basic CMS and i got stuck when triying to create a custom initializer for my site document class, the documentation in the symfonycmf cook book page is using doctrine/phpcr-bundle 1.0 and i'm using dev-master 1.1-dev, the reason i'm using dev-master version is because with that configuration my dependencies work fine

4

1 回答 1

0

在仔细检查了两个版本之后,我意识到毕竟两个版本之间的差异并不大,在 1.0 版本中,Doctrine\Bundle\PHPCRBundle\Initializer\InitializerInterface 在他的 init 方法中注入了一个 PCR\SessionInterface 对象,即session 对象就像我认为的学说 orm 的实体管理器,因为它执行保存方法以保存在 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 感谢您和您的团队在 symfony cmf 中所做的出色工作,我希望您可以检查这个问题,如果您发现任何错误或错误,如果我们做错了,请纠正我们。

于 2014-04-13T20:34:22.497 回答