我知道它通过Doctrine ODM保存到PHPCR中。
但我知道它已全部保存在app.sqlite
中,但我不知道它在概念上是如何运作的?
为什么在app.sqlite
中保存所有内容时根本需要数据库?
为什么我需要制作这种命令php app/console doctrine:phpcr:init:dbal
等等?
答案 0 :(得分:2)
Symfony CMF可以使用不同的模型类。我们提供了为Doctrine PHPCR-ODM映射的默认实现。反过来,PHPCR-ODM建立在PHP内容库PHPCR上。有3个实现,默认情况下cmf沙箱使用jackalope-doctrine-dbal。 jackalope-doctrine-dbal反过来使用doctrine dbal将内容存储到docladine dbal支持的数据库中。 jackalope目前处理sqlite,mysql和postgres。 jackalope-doctrine-dbal在第一次运行时需要一些初始化,这是你看到的命令。无论我们使用嵌入式sqlite数据库驱动程序还是mysql或postgres,都是一样的。
您可以在choosing a storage layer中找到一些背景信息,并了解如何在Create a New Project with PHPCR-ODM中设置phpcr-odm。查看http://symfony.com/doc/master/cmf/index.html以了解大多数CMF概念和实现。