Jul 26 2008

Модификация CodeIgniter для включение profiler глобально

Category: PHPIgor @ 22:06

В предыдущих проектах использовали этот простой, но шустрый php framework. В нем есть профайлер.

    Внизу страницы появляться блок с отладочными данными о страницы:

  • время генерации страницы, запросов
  • GET/POST запросы
  • SQL-запросы
  • количество потребляемой памяти

Чтобы не вставлять этот код в каждом контроллере

$this->output->enable_profiler(TRUE);

был сделан следующий хак.

Модификация файла CodeIgniter\system\libraries\Controller.php
до

	function Controller()
	{	
		parent::CI_Base();
		$this->_ci_initialize();
		log_message('debug', "Controller Class Initialized");
	}

и после

	function Controller()
	{	
		parent::CI_Base();
		$this->_ci_initialize();
		log_message('debug', "Controller Class Initialized");

		// Hack CodeIgniter Profiler
		if ($this->config->item('output_enable_profiler') == TRUE) {
			$this->output->enable_profiler(TRUE);
		}
	}

Теперь в файле конфигурации приложения application\config\config.php можно добавить параметр

$config['output_enable_profiler'] = TRUE; 

Если надо отключить профайлер устанавливаем значение FALSE. Если это мешает в каком-то конкретном контроллере, то пользуемся стандартной конструкцией:

$this->output->enable_profiler(FALSE);

Ссылки по теме:
CodeIgniter: Profiling Your Application
Профилирование приложения CodeIgniter
http://en.wikipedia.org/wiki/CodeIgniter

Tags: , ,

3 Responses to “Модификация CodeIgniter для включение profiler глобально”

  1. Setti says:

    Двойка вам по CodeIgniter!
    Модификация ядра осуществляется стандартными средствами платформы без модификации кода ядра.
    Читайте маны.
    http://codeigniter.com/user_guide/general/core_classes.html

  2. Igor says:

    :). Я все это прекрасно знаю. Все это делал специально, без использования наследования, скажем так на уровне ядра.
    Кроме этого расширил вывод ошибок, добавив 5-й уровень. И самое главное реализовал мультиязычность для сайтов.

  3. Анатолий says:

    Я реализовал
    http://habrahabr.ru/blogs/codeigniter/55477/
    Прикручиваем небольшой бар, с основными данными, плюс отображает аякс запросы. Этот бар не заменяет профайлер, а прекрасно его дополняет. В ряде случаев, той информации, что выдает бар, более чем достаточно.

Leave a Reply