Евгений Степанищев

Я — эксперт в области разработки веб-приложений и безопасности в интернете. Каждый месяц мой блог посещают около 90 тысяч человек. Работаю техническим директором в «Системах документооборота», занимаюсь электронным правительством.

КГУ → КФУ

Вот так живёшь, а то, что родной Казанский Государственный Университет имени Ульянова-Ленина переименован в Казанский (Приволжский) Федеральный Университет узнаёшь из графы «Образование» «вкантактике» бывшего одногруппника.

У меня военник СССР и диплом об окончании КГУ, а ещё я прожил всё детство на улице Свердлова в родном городе. Последняя теперь проспект Пятидесятилетия Победы.
17 комментариев
9 июня 2010 15:18

Scalar type hinting в PHP 5.4.X или 6.X

Ну и раз уж я решил перед сном пописáть о PHP, то продолжу. Ещё новость из мира PHP — в PHP будет scalar type hinting. Илья Альшанетский добился включения своего патча в код.

Сейчас type hinting в PHP есть, я могу указать явно, что параметр будет объектом определённого класса или массивом:
function test1(MyClass $var) {}

function test2(array $var) {}
Скоро можно будет указать, что передаваемый аргумент должен быть скаляром. Жаль только, что появилась только возможность указать определённый тип. Если «object» указать можно, то «scalar», к сожалению, нет. Это странно. Придётся указывать явно:
function test3(string $var) {}
Что поможет снизить количество ошибок в отдельных случаях, но как быть, если мне такая жёсткость ни к чему, если я хочу оставить возможность преобразования типов, там где это сделано хорошо (преобразование типа «array» в «string» в PHP сделано бессмысленно, посмотрите на Perl, там это имеет смысл)? Да и как мне указать, что мне всё равно — придёт int или float? Видимо, только явным приведением типа при вызове, а про возврат значения по ссылке, в этом случае, придётся забыть.

В отдельных случаях, хотелось бы, чтобы передав объект в такой типизированный параметр, у объекта дёрнулся метод __toString, а то и __toNumber, если указано, что должен быть передан числовой скаляр.

Надеюсь, не одному мне этого хочется и Илья продолжит работу над патчем.

Добавлено через несколько минут: прочитал комментарии, оказывается идут дискуссии о добавлении ключевых слов «scalar» и «numeric». Кроме того, Илья рассуждает и о преобразованиях типов в рамках type hinting. Ура.
8 комментариев
9 июня 2010 03:00

PHP-FPM будет входить в состав PHP 5.3.x

Отличная новость PHP-FPM (это патч к PHP, который делается Андреем Нигматуллиным и Майклом Шадлом, улучшает в PHP поддержку FastCGI) наконец-то будет входить в состав PHP 5.3.X.

Если вы не знакомы с этим патчем, то перечислю основные отличиями PHP-FPM от того, что входит в PHP по-умолчанию: умеет демонизироваться, умеет останавливать процессы без потери запросов, адаптивное к нагрузке количество процессов, возможность запуска с указанным gid/uid, chroot и различными опциями php.ini для каждого демона, возможность писать лог stdout и stderr, возможность рестартовать процессы без порчи кеша opcode в разделяемой памяти (при использовании eaccelerator), насильное завершение процесса по времени выполнения (как известно, set_time_limit не всегда это делает).

А так же возможность задавать заговолок ответа при фатальных ошибках PHP, поддержка возможности nginx 0.5.9+ передавать большие POST-запросы (например, загрузку файла) без сброса на диск, новая функция PHP fastcgi_finish_request, которая позволяет выполнять код после того как контент был отдан клиенту и веб-сервер и освободился для следующего запроса и slowlog, позволяющий контролировать какие скрипты выполняются медленнее указанного лимита.

В общем, исключительно полезный патч. Жаль, что в ветку PHP 5.2.X его почему-то не включат. Я не знаю причины, в сообщении на «Гугл-группах» по этому поводу написано « no way to add it to 5.2, sorry». Для PHP 5.2.X патч по-прежнему придётся накладывать руками, жаль.

На ветку 5.3.X вряд ли пока переходит много народу. Я попробовал мигрировать пару проектов, неудачно. Один завис (из-за использования crypt), второй заработал только частично. Очевидно, что обратная совместимость серьёзно поломана. При этом я не использую ничего, что перечисленно в официальном списке несовместимости.
5 комментариев
9 июня 2010 02:35

Москва → Казань → Москва

10-го вылетаем в Казань, обратно в Москву — 15-го.
Комментировать
9 июня 2010 01:28