【问题标题】:Symfony CMF confusionSymfony CMF 混乱
【发布时间】:2014-05-16 07:24:31
【问题描述】:

我是 symfony 的新手,对 symfony cmf 更是如此。我有项目想法并想开始,但是当我阅读文档时,我变得越来越困惑。

我需要构建的是具有树状结构路由和对这些路由的多语言支持的 CMS。但是我对这个 PHPPCR 的东西感到困惑,因为它对我来说是新的,我不想在我的服务器上安装 java,这是否意味着我不能使用 CMF?

我阅读了 Doctrine ORM 解决方案,但没有找到示例,文档清晰,还有另外 2 个概念,我想不通:

  • 学说/phpcr-odm
  • jackalope / jackalope-doctrine-dbal

它们有多大不同,或者它们可能相互补充?

所以总结一下这个问题:如果有人可以向我解释 PHPCR、PHPCR-ODM、doctual-dbal,并告诉我我可以使用 CMF 和仅 MySQL 数据库创建 CMS(我看到注意它可能从 DB 加载路由)和应该如何解决这个问题?

【问题讨论】:

    标签: symfony symfony-cmf


    【解决方案1】:

    PHPCR 的故事与您从其他数据库存储系统中了解到的有点不同。这可能会引起混淆,所以让我解释一下它背后的概念。

    基本流程图可以这样表示:

    应用层是您编写的 PHP 代码。要将一些数据放入 PHPPCR,您需要创建一个新节点(就像 MySQL 数据库中的一行)并将其注入 PHPCR 层。该层与绑定到 DB 的 jackalope 连接进行通信。

    如果您使用 Doctrine PHPCR-ODM,则在 Application 层和 PHPPCR 层之间有一个新层。你不会直接使用 PHPCR,你只会通过这个 Doctrine 层来使用它。

    Jackalope 层对于不同的 DB 层可以有多种不同的方式。到目前为止,Jackalope 层有 2 个选项:Jackrabbit 或 Doctrine DBAL。
    使用 Jackrabbit 选项,您可以通过 Jackalope 与 JAVA Jackrabbit 数据库系统进行通信。这是功能最强大、功能最丰富、速度最快的选项。
    您也可以选择使用 Doctrine DBAL。这个 Jackalope 适配器将使用 Doctrine DBAL 层与 DB 进行通信。 Doctrine DBAL 可以与大多数关系数据库(SQLite、MySQL、Oracle 等)一起使用。

    几乎所有来自 Symfony CMF 的示例都使用 Doctrine DBAL 版本,因为如果您是 PHPCR 世界的新手,那么设置起来会更容易。以documentation、sandbox 或standard edition 为例。

    【讨论】:

    • 所以如果我使用 Doctrine DBAL(jackalope-doctrine-dbal,如果我理解正确的话),我不需要 PHPCR、PHPCR-ODM 或其他任何东西,我可以只使用 php 创建我的网站和 mysql,没有在后台运行 java 怎么办?第二个问题我看到了视频 - youtube.com/watch?v=i5Y5QPcYWHw 的一个使用 symfony cmf 构建的系统,并将我们在文件系统上的文档路由到那里,所以通过使用 Doctrine DBAL,我可以避免这种情况,并将我的路由存储在 DB 中?
    • PHPCR 是一组接口,定义了如何与树状结构数据进行交互。 phpcr-odm 是一个对象映射器,因此您可以使用域对象而不是原始数据。 cmf 与对象一起工作,并为 phpcr-odm 提供绑定。您可以为教义 orm 或任何其他对象映射器编写自己的对象 - 但 phpcr 树的理念确实适用于 cms 系统。由于 phpcr 只是接口,你需要一个 phpcr 的实现。正如 wouter 所说,您可以选择与 sql 数据库一起使用的 jackalope-doctrine-dbal,或与 java 对话的 jackalope-jackrabbit
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    相关资源
    最近更新 更多