DBase в CakePHP?

Как я могу использовать DBase в CakePHP (v3.1)? Я уже установил его с PECL (v5.1.1), и он отлично работает с простым php, но когда я запускаю dbase_create () в CakePHP, он выдает мне ошибку:

Вызов неопределенной функции App \ Controller \ dbase_open ()

Я включил расширение в /etc/php5/apache2/php.ini и /etc/php5/cli/php.ini

1

Решение

Вот шаги отладки, предпринятые для устранения проблемы:

  1. Сообщение об ошибке говорит о функции App\Controller\dbase_create() не существует. То, что мы ожидаем, это функция dbase_create(), поэтому сообщение об ошибке указывает на то, что PHP ищет неправильное пространство имен. Изменение вызова функции на \dbase_create() заставил PHP посмотреть в глобальном пространстве имен.

  2. PHP по-прежнему выдавал сообщение об ошибке, на этот раз говоря о функции dbase_create() не существует. Это, по крайней мере, указывает на то, что PHP теперь ищет правильное место, но функция также не существует в глобальном пространстве имен.

  3. php.ini файлы были изменены, но Apache загружает все файлы конфигурации для своих модулей при запуске. Для обеспечения загрузки изменений необходимо перезапустить Apache, когда php.ini файл изменен. Перезапустите Apache, чтобы загрузить новую версию файла.

  4. После перезапуска Apache функция все еще не существует. Давайте удостоверимся, что модуль загружен правильно. Позвоните phpinfo() и проверьте его вывод на наличие всего, что связано с DBase. Это дало интересный результат: отдельный файл PHP с просто phpinfo() указал, что DBase 5.1.1 загружен, но вызывает phpinfo() из приложения CakePHP не выводилось ничего связанного с DBase.

  5. CakePHP работал как собственный сервер. Как и Apache, php.ini файл загружается при запуске этого сервера, поэтому обязательно перезапустите этот сервер, когда файл изменится. Это решило проблему, после перезапуска сервера CakePHP dbase_create() функция была доступна.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]