Codeigniter自动加载器并没有拿起cassandra库

时间:2014-10-09 04:48:01

标签: php codeigniter cassandra

您好我是cassandra数据库的新手。我从下载phpcassa https://github.com/mauritsl/php-cassandra

当我尝试从application / config / autoload.php自动加载cassandra库时,我得到了非存在类cassandra错误。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

o将所有与Cassandra相关的文件放入application / library /文件夹。

  • 从每个Cassandra类文件中删除名称空间。

"命名空间Cassandra;"

  • 您的文件名和类名应匹配,以便在codeigniter中的自动加载功能中加载库。

Cassandra文件类名是" Connection"。

  • 将班级名称更改为" Cassandra"

  • 您的构造函数需要一个参数来连接数据库。加载自动加载库时,您无法传递参数。

  • 将构造函数方法名称更改为connect

  • 使用$ this-> cassandra-> connect($ host,$ keyspace,$ options)可以处理连接。

将__construct重命名为connect

/**
   * Connect to Cassandra cluster.
   *
   * @param mixed $host
   *   Hostname as string or array of hostnames.
   * @param string $keyspace
   * @param array $options
   */
  public function connect($host, $keyspace = NULL, $options = array()) {
    $this->options += $options;

    if (empty($host)) {
      throw new InvalidArgumentException('Invalid host');
    }
    if (!is_array($host)) {
      $host = array($host);
    }
    shuffle($host);
    while ($host) {
      $hostname = array_pop($host);
      try {
        $this->transport = new Transport($hostname, $this->options['connect_timeout'], $this->options['stream_timeout']);
        break;
      }
      catch (Exception $e) {
        if (empty($host)) {
          // No other hosts available, rethrow exception.
          throw $e;
        }
      }
    }