PHP

Возвращение code completion в Eclipse PDT в рабочее состояние

В последнее время после установки свеженького Eclipse PDT (PHP Development Tools) отказывался работать Content Assist (он же Code Completion). Решение (правильнее даже несколько вариантов решений) нашлось следующее:
Открываем каталог с проектом, находим файл .project. В файле находим секцию <natures>, примерно следующего вида:

  1. <natures>
  2. <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
  3. </natures>

в неё добавляем строку

<nature>org.eclipse.php.core.PHPNature</nature>

Долгожданный релиз Zend Server 5

prodcut-ZendServer-5.jpg
Примерно месяц назад состоялся релиз Zend Server 5. Пользовался ещё Zend Server 5 beta версией - установка и настройка сервера проходит на раз. Установщик позволяет установить по желанию помимо связки Apache и PHP 5.3 Zend Framework, сервер MySQL 5 и программу phpMyAdmin (при наличии подключения к Интеренет). Огорчало удовольствие от пользования сервером то что ошибку 404 сервер выдавал пустым экраном, из-за того что php работал в режиме CGI, да ещё временами на тяжелых сайтах собранных на Drupal 6 CGI вываливался и сервер выдавал ошибку 500.
Сегодня обновился до релиза Zend Server 5 - сказка - страница ошибки 404 выдаётся нормально самим сайтом, отладка работает на ура, пока ни одной ошибки 500.
Но везде есть место небольшой гадости :) После обновления до релиза PHP установился 5.3 а с ним пришли сообщения о deprecated вызовах:

  1. Function ereg() is deprecated in C:\www\ncludes\file.inc on line 895.

Проверка существования метода в классе в PHP4

Судя по описанию функции method_exists с сайта php.net:

method_exists
(PHP 4, PHP 5)

method_exists — Checks if the class method exists

Parameters

object - An object instance or a class name

method_name - The method name

Return Values
Returns TRUE if the method given by method_name has been defined for the given object , FALSE otherwise.

Назад в будущее или как переносился проект на PHP 4

Казалось бы все давно перешли с уже почившего в прошлом PHP 4 на PHP 5, ан нет, не все.
Недавно пришлось переделывать проект написанный изначально под PHP 5.2+ чтобы он был совместим с web серверами где всё ещё стоит PHP 4. По ходу переделок нашел много приятностей PHP 5.2+, о которых думал как о должном, забыл что в "древние времена" было иначе:

1. Непосредственное использование объекта, полученного в результате вызова функции:

$template = $settings->getByName('default_template')->value;

Запуск Zend Optimizer с включенным Zend Debugger

Пару месяцев назад прикрутил Zend Debugger к Eclipse, был несказанно доволен удобствами пошаговой отладки PHP скриптов. К своему стыду до того отлаживал простой распечаткой переменных через print_r($val).

Все работало замечательно до того момента, как пришлось запустить защищенный php скрипт - понадобилась установка Zend Optimizer. Почему-то ранее установленный и настроенный Zend Debuger наотрез отказывался запускаться с Zend Optimizer, мотивируя тем что должен запускаться последним.

Да прибудет с Вами рекурсия...

"Рекурсия - см. рекурсия"
(с) словарь программиста

Ставил на днях на свой локальный сервер PHP акселератор - eAccelerator сборкой из исходных кодов. Посмешили меня его авторы, собралось всё успешно, но сообщения... сообщения меня чуть не зациклили: