Припиздовал на море

Ехал в поезде с очаровательной дамой и двумя её очаровательными детьми. Это было ужасно, лучше ездить с дембелями и цыганами, чем с детьми.

В Питере была жара, в Белоруссии дождь, в Житомире полный пиздец в виде неебической грозы, в Одессе обратно жара, как будто и не уезжал.

А на хабре уже раздают релиз 5.3, хотя PHP.NET о нём ничего не знает.

[без названия]

Упиздовал на море… Все кто в городе — лузеры.

53RC

На мою дняффку пришли по запросу «php 5.3 не ставится на windows». Странно, я ничего такого здесь не писал, видимо гугл научился читать мысли.

Потому что, да, не ставится он нифига на windows. Прошлогодняя альфа ставилась, а RC не ставятся. Ни RC2, ни RC3, ни RC4. Ни «Non Thread Safe», ни «Thread Safe». Ни «VC9 x86», ни «VC6 x86». Ни zip, ни installer.

Не сказать, что я очень сильно пытался, но FastCGI на апач поставить умудрился, всё равно не помогло.

А кто ещё пробовал?

PHP Extension: Date/Time

Что-то я совсем разленился и перестал быть в курсе нововведений в PHP. Дабы исправить это, я решил перечитать документацию по всем расширениям языка. А заодно и вывалить краткие отчёты по этому на головы моих неподготовленных читателей. Может быть, для других лентяев что-нибудь окажется полезным.

Сегодня рассмотрим новые (относительно) средства для работы со временем, появившиеся в PHP 5.2 (с 5.1 в ранге экспериментальных). Для меня, в большинстве случаев, работа с ними, заканчивается на вызове в начале программы date_default_timezone_set(), иначе при E_STRICT выскакивает предупреждение.

Однако, новые средства довольно забавны и, вполне, могут сделать жизнь проще и веселее.

Остальной текст под катом

?

Почему во всех дистрибутивах 5-го PHP по Windows, все dll-ки расширений лежать в каталоге ext и при этом авторы упорно пишут в php.ini:

; Directory in which the loadable extensions (modules) reside.
extension_dir = "./"
???

Мировые новости за неделю

За последнюю неделю из мира IT приходили воодушевляющие и обнадёживающие вести.

На конференции разработчиков Google был продемонстрирован самый амбициозный проект — Google Wave. Гугловейв — новое слово в развитии мировой цивилизации. По задумке он должен заменить человечеству электронную почту, чаты, телефон, телеграф, пищу и отправление физиологических потребностей.

В тоже время вышла Opera 10 Beta 1. Среди приятных нововведений: улучшения, увеличения, опять улучшения и огромные шаги.

Не отстаёт и Safari, добравшаяся до 4 версии. Новая версия в сто тыщ миллионов раз быстрее Internet Explorer и Mozilla Firefox, рендеринг же страниц ведётся на скорости, превосходящей скорость электромагнитного излучения.

Но больше всех порадовал ведущий сайт PHP-флудеров своей новой психоделической версией главной страницы.

Не стоит на месте и наш ресурс. В последнии дни он сумел занять первое место в выдаче Google по запросу «ебь» и попасть на вершины Яндекса по «ненавижу группу Гражданская Оборона». Хотя Яндекс опять всё не так понял, но в силу его размеров и массы, это уже не его проблемы.

Так же мой блог сменил RSS на Feedburner. Как заявляют эксперты, специальный плагин позволяет не изменять адреса ленты, благодаря чему все бесчисленные триллионы моих подписчиков не будут вынуждены переподписываться.

Это были мировые новости. Спасибо за то, что были с нами.

53

На главной PHP.NET в плашке «Current release candidates» PHP 5.3 тихо заменён на PHP 5.2.10

Эмулятор php_memcached на PHP

Как неоднократно здесь писалось, новое расширение php_memcached лучше старого php_memcache практически всем, за исключением одного — нет Windows-версии. Что сильно напрягает при разработке и отладке.

Так как не было желания ставить себе Visual C и разбираться, как компилировать это расширение, я написал обёртку на PHP.

Просмотреть исходный код можно здесь (43 K), а скачать в архиве здесь (8 K)

В эмуляторе полностью воспроизведён интерфейс Memcached-класса, а работа по возможности приближена к работе реального расширения.

Так же в комментариях исходника переведена документация к методам, константам опций и результатов и даны свои комментарии. Так что код можно использовать просто вместо русскоязычной документации.

Эмулятор, конечно, далёк по оптимальности до настоящего расширения и при большом количестве параллельных запросов в некоторых местах может работать некорректно. Однако, для единоличной разработки под Windows вполне подходит.

Работает эмулятор через старое расширение php_memcache, поэтому оно должно быть установлено.

Остальной текст под катом

Преобразование типов в memcached

Мемкэш жжот просто нипадецки. Протестируем один сценарий для трёх расширений PHP:

  1. Старенький php_memcache.dll на моей локалке под Windows
  2. Тот же php_memcache только под FreeBSD
  3. Новое расширение php_memcached

Остальной текст под катом

call_user_fuck()

В callback-функции нельзя по человечески передать аргумент по ссылке.

function func($x, &$y) {
    $y = $x * 2;
}
 
$callback = 'func';
$x = 5;
 
call_user_func($callback, $x, &$y);
$callback($x, &$y);

Оба раза это сработает правильно, но оба раза вылетит Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration …. Да, сейчас я побегу модифицировать декларацию call_user_func() и runtime function name

Параметр allow_call_time_pass_reference нельзя выключить на время через ini_set(). Не помогает здесь и @call_user_func(...): предупреждение вываливается ни при вызове, а при подключении файла, спасёт только @require(...).

А если это библиотека для распространения, то запись в документации подключайте только с отключённым выводом ошибок не лучшая реклама. Единственный вариант — старый добрый eval() с извинениями и объяснениями в коде.

По страницам:12