Программирование на PHP. Подключаем FirePHP к фреймворку CodeIgniter

Владимир | | CodeIgniter, PHP, Web разработка.

Логотип для CI and FirePHP
В этой статье я продолжу тему использования библиотеки FirePHP при разработке web приложений. Сегодня речь пойдет о подключении этой библиотеки к фреймворку CodeIgniter. Из предыдущей статьи вы, наверное, помните, что подключение этой библиотеки к обычному php скрипту не представляет сложности. С подключением к CodeIgniter ситуация немного сложнее, но прелесть ситуации в том, что основная часть работы уже сделана за нас.

Правда, есть несколько нюансов.

Рассмотрим весь процесс по порядку.

1) Качаем FirePHP и устанавливаем плагин FireFox (подробные инструкции в предыдущей статье)

2) Качаем расширение Fire Ignition.

3) Распаковываем архив Fire Ignition в папку system вашего приложения.

После этого у вас появится несколько новых файлов. В папке application/libraries: Firephp_fake.php, MY_Controller.php. В папке application/controllerswelcome.php (в этом файле находится только демонстрационный пример).
Кроме того, будет добавлен файл application/config/fireignition.php с одной настройкой:

$config['fireignition_enabled'] = TRUE;

Как несложно догадаться она подключает FireIgnition.

Кстати, очень полезная опция для сайта размещенного на «боевом» сервере

$config['fireignition_enabled'] = $_SERVER['REMOTE_ADDR'] == '127.0.0.1';

включает FireIgnition только для запросов с заданного IP адреса.

4) Теперь нужно скопировать файлы FirePHP в папку application/libraries. Если быть точным, нужен всего один файл FirePHP.class.php, причем его необходимо переименовать в Firephp.php.

Все. Установка и настройка завершена. Теперь мы можем отправлять сообщения. Например:

$this->firephp->fb('test');

Кстати, наткнулся на интересный момент. Чтобы было удобнее отправлять сообщения кириллицей, я изменил кодировку контроллера на UTF-8, и сразу же получил ошибку отправки заголовков. Честно говоря, я так и не разобрался, что отправляется при изменении кодировки и, поэтому решил проблему самым примитивным способом: добавил функцию ob_start() в самое начало файла index.php.

После этого, я решил немного упростить вызов функции отправки сообщения, а точнее сократить его. Для этого я написал небольшой хелпер, который позволяет отправлять сообщения простым вызовом функции fb (как и в оригинале).

Файл с хелпером называется fireignition_helper.php, должен быть размещен в папке application/helpers и содержит следующий код:

<?php

if (!defined('BASEPATH')) exit('No direct script access allowed');

function fb() {

	$obj = &get_instance();

	$args = func_get_args();

	return call_user_func_array(array($obj->firephp, 'fb'), $args);

	return true;

}
?>

Перед использованием хелпер нужно подключить:

$this->load->helper('fireignition');

А после этого можно использовать функцию fb(...):

fb(‘Привет’);

Как видите, ничего сложного.

Удачи вам и поменьше поводов использовать эту библиотеку :-) .

Постовой: автор блога Virtual-lab начал акцию «Бесплатная регистрация в каталогах». Смысл простой. Вы упоминаете его акцию в своем блоге, а он – регистрирует ваш сайт в 6000+ каталогах.

  • Big_Shark

    Я просто положил файл Firephp.php в папку application/libraries и запускаю его так
    $this->load->library('FirePHP');
    $this->firephp->info('FirePHP загружен.');

    и все прекрастно работает и не какой Fire Ignition не нужен
    а если вы хотите сказать что Firephp работает только в php5 и Fire Ignition нужен для того чтобы в php4 он неругался то можна после запуска добавить проверку 5 php или нет и менять $this->firephp->setEnabled($Enabled); вот и все)
    Логи в FirePHP

    • Честно говоря, я просто не обратил внимания, что firephp соответствует всем требованиям CI к библиотекам. Поэтому просто использовал проверенное решение (CodeIgnition), которым уже не один раз пользовался 🙂

  • Big_Shark

    Я просто положил файл Firephp.php в папку application/libraries и запускаю его так
    $this->load->library('FirePHP');
    $this->firephp->info('FirePHP загружен.');

    и все прекрастно работает и не какой Fire Ignition не нужен
    а если вы хотите сказать что Firephp работает только в php5 и Fire Ignition нужен для того чтобы в php4 он неругался то можна после запуска добавить проверку 5 php или нет и менять $this->firephp->setEnabled($Enabled); вот и все)
    Логи в FirePHP

    • Честно говоря, я просто не обратил внимания, что firephp соответствует всем требованиям CI к библиотекам. Поэтому просто использовал проверенное решение (CodeIgnition), которым уже не один раз пользовался 🙂

  • Жаль что ваша статья мне попалась только после того как сам во всем разобрался. От использования хелпера для вызова firephp отказался теряется возможность проследить строку вызова, иногда это бывает очень полезно.

    • Хелпер в любом случае нужен только для сокращения записи. К тому же никто не запрещает использовать одновременно хелпер и обычный вызов.

  • Жаль что ваша статья мне попалась только после того как сам во всем разобрался. От использования хелпера для вызова firephp отказался теряется возможность проследить строку вызова, иногда это бывает очень полезно.

    • Хелпер в любом случае нужен только для сокращения записи. К тому же никто не запрещает использовать одновременно хелпер и обычный вызов.

  • Castro

    Владимир, к сожалению не нашёл конкретно тему куда задать вопрос, но он касается CI, да и комментариев здесь немного.
    Упражняюсь сейчас в CI и возникла идея написать для учёбы и улучшения навыка укорачивалку урлов, для начала простейшую. Знаю, что есть уже готовые системы, написаные для этого, но хочется самому дойти мозгом:)
    Всё вроде понятно, кроме основного. По идее будет достаточно одной страницы — страницы куда вводишь url, и получаешь сокращенную его версию. Я не могу понять, как привести url самого сайта, чтобы статровая была например j.mp/start, ну а при j.mp/111 уже происходил редирект. Как я понимаю, тут нужны 2 метода контроллера(грубо говоря) — start и index.
    Как же привести url к виду j.mp/start, и чтобы можно было обращаться по url — j.mp/111? Как так спрятать можно контроллер? Это как-то специально надо настраивать mod_rewrite?

    • Первое, что приходит в голову — использовать метод _remap(). Он перехватывает все обращения к контроллеру и в нем можно проверить вызван метод start или какой-то другой. У меня был пост с примером.
      Сделать с помощью mod_rewrite тоже можно, но тогда возникают другие вопросы. PHP при этом вызываться вообще не будет. Это хорошо в плане нагрузки на сервер, но будет сложнее собирать статистику переходов по ссылкам.

  • Castro

    Владимир, к сожалению не нашёл конкретно тему куда задать вопрос, но он касается CI, да и комментариев здесь немного.
    Упражняюсь сейчас в CI и возникла идея написать для учёбы и улучшения навыка укорачивалку урлов, для начала простейшую. Знаю, что есть уже готовые системы, написаные для этого, но хочется самому дойти мозгом:)
    Всё вроде понятно, кроме основного. По идее будет достаточно одной страницы — страницы куда вводишь url, и получаешь сокращенную его версию. Я не могу понять, как привести url самого сайта, чтобы статровая была например j.mp/start, ну а при j.mp/111 уже происходил редирект. Как я понимаю, тут нужны 2 метода контроллера(грубо говоря) — start и index.
    Как же привести url к виду j.mp/start, и чтобы можно было обращаться по url — j.mp/111? Как так спрятать можно контроллер? Это как-то специально надо настраивать mod_rewrite?

    • Первое, что приходит в голову — использовать метод _remap(). Он перехватывает все обращения к контроллеру и в нем можно проверить вызван метод start или какой-то другой. У меня был пост с примером.
      Сделать с помощью mod_rewrite тоже можно, но тогда возникают другие вопросы. PHP при этом вызываться вообще не будет. Это хорошо в плане нагрузки на сервер, но будет сложнее собирать статистику переходов по ссылкам.