Symfony 3.4 中的 Cassandra 编译错误

Cassandra compile error in Symfony 3.4

我用 php7.1 为 cassandra 编译了 datastax 驱动程序并安装了包 https://packagist.org/packages/hendrahuang/cassandra-bundle

但是当我尝试 运行 "bin/console cassandra:schema:create" 时,我遇到了编译错误

Compile Error: Declaration of CassandraBundle\Cassandra\ORM\EntityManager::execute(Cassandra\Statement $statement, ?Cassandra\Exec
  utionOptions $options = NULL) must be compatible with Cassandra\Session::execute($statement, $options = NULL)

我在 google 中进行了搜索,但找不到任何解决方案。

我认为您已经构建了 Cassandra 扩展版本 1.3,其中方法执行的定义已从 1.2 更改为匹配 cassandra-bundle 最新版本标签 1.4 https://docs.datastax.com/en/developer/php-driver/1.3/api/Cassandra/interface.Session/

要解决您的问题,您有两个解决方案:

  1. 构建扩展版本1.2,其execute方法的定义与cassandra-bundle中的相同。 https://docs.datastax.com/en/developer/php-driver/1.2/api/Cassandra/interface.Session/#method-executehttps://github.com/Hendra-Huang/CassandraBundle/blob/v1.4/Cassandra/ORM/EntityManager.php#L405

  2. 使用cassandra-bundle的分支master,执行方法的定义相同 https://github.com/Hendra-Huang/CassandraBundle/blob/master/Cassandra/ORM/EntityManager.php#L411https://docs.datastax.com/en/developer/php-driver/1.3/api/Cassandra/interface.Session/#method-execute

要更改为 branch master,请更新您的 composer.json:"hendrahuang/cassandra-bundle": "dev-master" 然后 composer update hendrahuang/cassandra-bundle 您可能需要更改 composer.json 中的 minimum-stability 设置 https://getcomposer.org/doc/04-schema.md#minimum-stability

方案一比较安全。你不想为你的依赖使用 master 分支。

希望对您有所帮助