我知道它通过 Doctrine ODM 保存到 PHPCR 中。
但我知道它都保存在 中app.sqlite
,但我不明白它在概念上是如何工作的?
当所有内容都保存在其中时,为什么它根本需要数据库app.sqlite
?为什么我需要发出这种命令php app/console doctrine:phpcr:init:dbal
等等?
我知道它通过 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,这都是一样的。
您可以在使用 PHPCR-ODM 创建新项目中找到选择存储层的选择背景以及如何设置 phpcr-odm 的信息。查看http://symfony.com/doc/master/cmf/index.html以了解大部分 CMF 概念和实现。