【问题标题】:How would I add cassandra support for symfony/doctrine?我将如何添加对 symfony/doctrine 的 cassandra 支持?
【发布时间】:2011-08-11 05:50:00
【问题描述】:

我想将 Cassandra 与 Symfony 一起使用。这是我第一次使用这两种技术。我对已经完成的工作进行了大量研究,似乎 Symfony(使用 Doctrine ORM)内部不支持 Cassandra。扩展 Doctrine 以包括对 Cassandra 的支持对我来说有多困难?包含此功能的最佳、最简洁和最可升级的方式是什么?

【问题讨论】:

    标签: php cassandra symfony


    【解决方案1】:

    Doctrine 的 ORM 用于关系数据库,这就是为什么它被称为对象 relational 映射器。与 Cassandra 等面向列的存储完全不同的概念。我会说让 Cassandra 加入的机会非常渺茫。

    添加到存储和访问模式不同的工作。

    在 Doctrine 的生态系统中,有人编写了支持 MongoDB 和 CouchDB 的 ODM(对象 document 映射器)——但面向文档的数据库也是一个不同的游乐场。甚至这两者也有很大不同,而两者都是面向文档的数据库。

    我认为你无法说服任何人在这两个项目中接受 Cassandra。

    就我个人而言,Cassandra 最大的亮点是节俭和与之相关的。话虽如此,这是我个人的看法,没有什么能阻止你为 Cassandra 实现一个不错的 PHP 包装器。

    我也认为没有理由不将您的 Cassandra 包装器作为自定义 Symfony 包等发布。

    在 Symfony2 之后,许多人启动了独立于核心的项目,以提供包含附加功能集的捆绑包(例如,Friends of Symfony)。因此,如果您想说服这一点,请继续做一些事情(例如在 Github 上),看看它是如何被接收的。

    【讨论】:

      【解决方案2】:

      我实际上是在为 Cassandra 寻找 Symfony2 捆绑包。 Cassandra wiki 确实有用于 Cassandra 的 PHP 客户端。

      http://wiki.apache.org/cassandra/ClientOptions

      【讨论】:

        【解决方案3】:

        cassandra 有一个活跃的 PHP 客户端:https://github.com/thobbs/phpcassa

        从那里开始以避免直接与 Thrift API 搏斗。

        【讨论】:

          【解决方案4】:

          Cassandra 的 CQL 有一个 PDO 驱动程序: http://code.google.com/a/apache-extras.org/p/cassandra-pdo/

          而且由于 Doctrine 的 DBAL 建立在 PDO 之上,我认为至少可以让部分功能正常工作。

          当然,诸如连接、索引和实体关系之类的东西是手动创建的,并在考虑到 Cassandra 的内部结构知识的情况下使用。

          作为一名来自 Java 世界的开发人员,我可以说有用于 Cassandra 的 Java ORM 库,您的 RDBMS 中的几乎所有东西都可以正常工作。所以我想这毕竟是可能的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-10-21
            • 2015-07-03
            • 2018-04-12
            • 1970-01-01
            • 1970-01-01
            • 2011-10-11
            • 1970-01-01
            • 2011-04-07
            相关资源
            最近更新 更多