Доступ к данным из функции обратного вызова на уровне класса в контроллере в CodeIgniter - PullRequest
0 голосов
/ 11 октября 2011

У меня есть функция обратного вызова, которую я использую для проверки URL отправленного видео на основе API YouTube или Vimeo (в зависимости от того, какой URL они отправили). Функция обратного вызова в рамках проверки проверяет их отправку на основе информации, которую мы получаем от API видеосайта.

Весь код функционирует на 100% правильно, и у меня есть соответствующий статус », возвращенный к проверке формы, но остальные данные, которые мы получили от API YT или Vimeo, я хотел бы использовать выше по цепочке в CodeIgniter. Проблема в том, что эти данные недоступны в классе, который я обычно выбрасываю в представление.

Есть ли какой-нибудь способ получить массивы или набор данных в функции обратного вызова, доступной на уровне класса в моем контроллере (где происходит проверка)? Я сам сводил с ума, пытаясь понять это безуспешно.

1 Ответ

2 голосов
/ 11 октября 2011

Вы можете поместить проверку (и другие вызовы API) в объект библиотеки, в котором хранится ответ. Давайте предположим, что этот класс библиотеки называется YouTubeAPI, ответ хранится в элементе с именем 'response', а файл находится в /libraries/youtube/YouTubeAPI.php.

Функция проверки в вашем контроллере может загрузить это в CI, используя функцию загрузки в контроллере.

$this->load->library('youtube/YouTubeAPI');

Это делает его доступным в любом контроллере или представлении, используя

$r = $this->youtubeapi->response; // assign to arbitrary local variable

Или доступно в любой библиотеке, используя

$CI &= get_instance();
$r = $CI->youtubeapi->response; // assign to arbitrary local variable

При использовании пользовательских обратных вызовов для проверки я обычно использую функцию обратного вызова в качестве оболочки для библиотеки или помощника, который выполняет фактическую проверку. Это сохраняет СУХОЙ на тот случай, если вам придется проверять в нескольких местах.

...