我想将Cassandra与Symfony一起使用。这是我第一次使用这两种技术。我对已经完成的工作进行了大量研究,似乎Symfony(使用Doctrine ORM)中没有对Cassandra的支持。将Doctrine扩展到包含对Cassandra的支持是多么困难?包含此功能的最佳,最干净,最可升级的方法是什么?
答案 0 :(得分:5)
Cassandra的CQL有一个PDO驱动程序: http://code.google.com/a/apache-extras.org/p/cassandra-pdo/
由于Doctrine的DBAL是在PDO的基础上构建的,我认为至少可以使部分功能正常工作。
当然,连接,索引和实体关系之类的东西都是手动创建的,并且与Cassandra的内部结构知识一起使用。
作为Java世界的开发人员,我可以说Cassandra有Java ORM库,几乎所有RDBMS都可以使用。所以我想这毕竟是可能的。
答案 1 :(得分:2)
Doctrine的ORM用于关系数据库,这就是为什么它被称为对象关系映射器。与Cassandra等面向列的商店有着根本不同的概念。我想说让Cassandra在那里的机会相当渺茫。
添加所需的工作,存储和访问模式不一样。
在Doctrine的生态系统中,有人编写支持MongoDB和CouchDB的ODM(对象文档映射器) - 但是面向文档的数据库也是一个不同的游乐场。即使这两者彼此也非常不同,而两者都是面向文档的数据库。
我认为你不能说服任何人在这两个项目中接受Cassandra。
就我个人而言,卡桑德拉最大的表演节目是节俭和相关的。话虽如此,这是我个人的意见,没有什么可以阻止你为Cassandra实现一个不错的PHP包装器。
我也认为没有理由不将你的Cassandra包装器作为自定义Symfony包等发布。
在Symfony2之后,许多人开始独立于核心的项目,提供涵盖附加功能集的捆绑(例如,Friends of Symfony)。因此,如果你想要坚持这一点,那就继续开始吧(例如在Github上)并看看它是如何被接收的。
答案 2 :(得分:0)
我实际上正在为Cassandra寻找一个Symfony2捆绑包。 Cassandra wiki确实为Cassandra提供了PHP客户端。
答案 3 :(得分:0)
cassandra有一个活跃的PHP客户端:https://github.com/thobbs/phpcassa
从那里开始,以避免直接与Thrift API搏斗。