我知道它通过Doctrine ODM保存到PHPCR。
但我知道它都保存在app.sqlite
中,但我不明白它在概念上是如何工作的?
当一切都保存在app.sqlite
时,为什么需要数据库?为什么我需要这样的命令php app/console doctrine:phpcr:init:dbal
等
Symfony CMF可以使用不同的模型类。我们提供了一个映射到Doctrine PHPCR-ODM的默认实现。反过来,PHPCR- odm构建在php内容存储库PHPCR之上。有3种实现,CMF沙箱默认使用jackalope-doctrine-dbal。反过来,Jackalope-doctrine-dbal使用doctrine dbal将内容存储到doctrine dbal支持的数据库中。Jackalope目前处理sqlite, mysql和postgres。Jackalope-doctrine-dbal需要在第一次运行时进行一些初始化,这是您看到的命令。这是相同的,无论我们使用嵌入式sqlite数据库驱动程序或mysql或postgres。
您可以在Create a New Project with phpcr-odm中找到有关选择存储层和如何设置phpcr-odm的一些背景信息。查看http://symfony.com/doc/master/cmf/index.html以获得大多数CMF概念和实现的解释。