Jul 28 2008

Еженедельные обновления Symfony #82 (21-27 июля 2008)

Category: PHP,SymfonyIgor @ 00:48

Неделька выдалась спокойной для разработчиков системы :).

Были закрыты очень важные баги
• r10425, r10426: [1.1, 1.2] баг был связан с перегенерацией сессии при использовании базы данных в виде хранилища. Каждый раз при отправке запроса создавалась новая «чистая» сессия, что не позволяло запоминать/прочитать данные с предыдущей сессии.
• r10466, r10467: [1.1, 1.2] добавлена опция rsync-options в задачу sfProjectDeploy.
• Добавлены обработчики исключений и многое другое…

Обновление документации
Урок: Мой первый проект (My first project tutorial)
Как хранить файлы в БД
Кодирование Symfony с Vim
Как обновить проект под новую версию Symfony 1.1
В вики разместили все страницы касающиеся новой версии Симфони 1.1. В частности, как обновиться с версии 1.0 на 1.1. Какие произошли изменения в архитектуре, новые команды, методы…
Список изменения названий команд (Task Names)

Документация на русском языке

Добавлены новые плагины, плюс многие обновлены:

  • YsfAPIClientPlugin
  • TaOpenIDsfGuardPlugin
  • SfPHPDocumentorPlugin

Более подробную информацию можно получить в официальном релизе A week of symfony #82 (21->27 july 2008)


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


Jul 23 2008

Доступен для скачивания релиз Zend Framework 1.6 RC1

Category: PHP,Zend FrameworkIgor @ 18:58

Скачать новый релиз можно тут Zend Framework 1.6 RC 1

Обзор новых возможностей:

  • Интеграция с Dojo
    • JSON-RPC
    • Dojo Data packing
    • Dojo View Helper
    • Dijit integration with Zend_Form & Zend_View
    • Dojo Library Distribution
  • SOAP (server/client)
    • SOAP Server
    • SOAP Client
    • Autodiscovery
    • WSDL access
    • WSDL Generation
  • Preview of Tooling Project in Laboratory (see /laboratory folder)
    • Command Line Interface
    • Project Asset Management
  • Unit Testing Harness for Controllers
  • Lucene 2.3 Index File Format Support
  • Zend_Session save handler for Database Tables
  • Paginator Component
  • Text/Figlet Support
  • ReCaptcha Service
  • Zend_Config_Xml Attribute Support
  • Character Set Option for DB Adapters
  • Zend File Transfer Component
  • New Media View Helpers (Flash, Quicktime, Object, and Page)
  • Support in Zend_Translate for INI File Format

Разработчики ожидают фидбэк от пользователей, что повлияет на количество выпускаемых релизов. И крайне не рекомендуют использовать эту версию в разработке :), только в качестве изучения новых возможностей.


Jul 21 2008

Контроль качества в PHP проектах — слайд от Sebastian Bergmann

Category: PHPIgor @ 23:57

Sebastian Bergmann разместил очень интересный слайд. Он также хорошо известен своей разработкой phpUnit . Текущая версия 3.3, в Milestone можно увидеть, что работает над 4-й версией, которая будет работать под PHP 5.3.


Jul 21 2008

PHP профайлер Xdebug

Category: PHP,ОтладкаIgor @ 23:11

Есть такой замечательный отладчик/профайлер Xdebug. Как для Windows так и для никсов.

Сайт разработчика: xdebug.org.

Что это такое это? Это расширение для PHP, которое работает как debugger и profiler. В настройках можно указать, что использовать, а что нет, можно все включить. Очень важные параметр xdebug.profiler_output_name, если его оставить по умолчанию, тогда вся отладочная информация будет записываться в один файл, а это бывает плохо, т.к. грузиться, например, страница, а с ней запускается 3- и больше файлов PHP: сама страница, Ajax, CSS, локализация. И в итоге в отладке будет последний файл. А так с помощью маски получаем уникальные файлы. В данном случае в таком виде: cachegrind.out.1208803760.D_home_demo-site_htdocs_sf_sandbox_web_index_php. В общем на офф. сайте можно найти подробнейшую помощь по Xdebug.

Подключение его в php.ini:

[Xdebug]
zend_extension_ts="php_xdebug-2.0.3-5.2.5.dll"
xdebug.default_enable = Off

xdebug.profiler_enable = Off ;Off
xdebug.profiler_output_dir = "/tmp/xdebug/cachegrid"
xdebug.profiler_append = On
xdebug.profiler_output_name = "cachegrind.out.%t.%s"

xdebug.auto_trace = Off
xdebug.trace_format = 0
xdebug.collect_params = 1
xdebug.collect_return = 1
xdebug.collect_includes = 1
xdebug.trace_options = 1
xdebug.trace_output_dir = "/tmp/xdebug/trace"

Программы для просмотра логов profiler:

  1. KCacheGrind — не юзал.
  2. WinCacheGrind — софтина под Винду, старая, апреля 2005 года. На её данные особо опираться не следует, т.к. информация относительная. Но общую картину дать может. Сам пользуюсь. Несколько раз показала интересные вещи, плюс помогла найти баги.
  3. CachegrindVisualizer — с офф. сайта. Это кроссплатформенная программа для визуализации файлов в формате Callgrind, в частности, его подмножества используемого Cachegrind. Профайлер Xdebug является совместимым с Cachegrind.
  4. Webgrind — Xdebug profiling c web frontend на PHP5. Все просто скопировал файлы, конфиг прочитался автоматом из настроек php.ini. Стоит только выбрать файл, и результат на экран. Минус — все написано на ПХП и если файл профайлера огромный, то будут тормоза.
  5. XDebugClient — это клиент для дебаггера, прослушает его и отображает у себя в консоли, только под Windows, не проверял.

Что можно почитать:


← Предыдущая страница