CakePHP 中的数据库?

DBase in CakePHP?

如何在 CakePHP (v3.1) 中使用 DBase?我已经用 PECL (v5.1.1) 安装了它,它在普通 php 上运行良好,但是当我在 CakePHP 中 运行 dbase_create() 时,它给我一个错误:

调用未定义的函数App\Controller\dbase_open()

我在 /etc/php5/apache2/php.ini 和 /etc/php5/cli/php.ini

中包含了扩展

以下是解决问题的调试步骤:

  1. 错误信息说函数App\Controller\dbase_create()不存在。我们期望的是函数 dbase_create(),因此错误消息表明 PHP 正在查找错误的命名空间。将函数调用更改为 \dbase_create() 导致 PHP 在全局命名空间中查找。

  2. PHP还是报错,这次说函数dbase_create()不存在。这至少表明 PHP 现在正在寻找正确的位置,但该函数也不存在于全局命名空间中。

  3. php.ini 文件已修改,但 Apache 在启动时加载其模块的所有配置文件。为确保加载更改,需要在更改 php.ini 文件时重新启动 Apache。重新启动 Apache 以加载新版本的文件。

  4. 重启Apache后,该功能仍然不存在。让我们确保模块已正确加载。调用 phpinfo() 函数并检查其输出是否与 DBase 相关。这给出了一个有趣的结果:一个单独的 PHP 文件只有 phpinfo() 表明加载了 DBase 5.1.1,但是从 CakePHP 应用程序调用 phpinfo() 没有输出任何内容与 DBase 相关。

  5. CakePHP 是 运行 作为自己的服务器。与 Apache 一样,php.ini 文件在该服务器启动时加载,因此请确保在文件更改时重新启动该服务器。这解决了问题,在重新启动 CakePHP 服务器后,dbase_create() 功能可用。