Как исправить путь PHP для плагина codeIgniter? - PullRequest
1 голос
/ 20 мая 2010

Я пытался самостоятельно установить Rediska (клиент Redis PHP) в мое приложение codeigniter, но безуспешно. Я получу безумные суммы ошибок «Нет такого файла или каталога» при попытке поместить их в папку плагинов Codeigniter:

Серьезность: Предупреждение

Сообщение: require_once (Rediska / Соединение / Exception.php) [function.require-Once]: не удалось открытый поток: нет такого файла или каталога

Имя файла: Rediska / Connection.php

Номер строки: 6

Кому-нибудь удалось установить Rediska в Codeigniter до меня?

Из руководства по установке Rediska видно, что установка проста и проста: http://rediska.geometria -lab.ru / Документация / Начало работы /

Поскольку сейчас речь идет только об ошибках, связанных с путями, я предполагаю, что должна быть какая-то удобная настройка PHP, которую я могу изменить, чтобы все это работало?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 20 мая 2010

Это простая проблема, связанная с include_path. Другими словами, PHP не может автоматически загружать файлы, которые пытается использовать библиотека, которую вы пытаетесь использовать (в вашем случае Rediska).

Я предположил, что вы извлекли содержимое каталога библиотеки Rediska в каталог system / application / library Code Igniter (чтобы в библиотеках dir были каталоги Rediska.php и Rediska) Вам нужно будет ввести следующий код:

ini_set('include_path', ini_get('include_path').';'.APPPATH.'libraries/');

... в одно из следующих мест (вам решать, какое из них):

  1. изменить основной файл index.php перед вызовом функции require_once в самом низу файла
    • в (каждый) контроллер, где вы хотите использовать Rediska
    • изменить файл Rediska.php и добавить эту строку в самый верх файла (первая строка после

Тогда вы сможете загружать rediska, используя следующие строки (из вашего контроллера или даже из другой библиотеки):

$this->load->library('rediska');
$rediska = new Rediska();

В качестве альтернативы, вместо загрузки библиотеки вручную, вы можете автоматически загрузить библиотеку Rediska. См. http://codeigniter.com/user_guide/general/autoloader.html для получения дополнительной информации.

Надеюсь, это поможет.

1 голос
/ 30 июня 2010

Только что заметил заметку от Фила Стерджена о том, что плагины становятся избыточными .....

В настоящее время я работаю над развертыванием Rediska в библиотеку CI, но для общего использования вы можете использовать следующее для включения файлов на основе пути приложения CI

include(APPPATH.'libraries/rediska/Exception.php');

Включает Exception.php в system / apps / library / rediska /

1 голос
/ 29 июня 2010

Я не получил решение ini_set для работы, но вариант этой строки прекрасно работает: set_include_path (get_include_path (). PATH_SEPARATOR. APPPATH.'libraries / ');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...