Пишу, по большей части, про историю, свою жизнь и немного про программирование.

PHP 5.3.0: Прощай .htaccess

Я уже достаточно давно работаю в конфигурации nginx + FastCGI PHP (без Apache в качестве backend). Это более эффективно — экономит память и система, в целом, более устойчива, производительна, легче в управлении (приходится конфигурировать один сервер, а не два). Единственное, чего нехватало — настройки PHP для определённого хоста (так называемые «Local Value» в phpinfo).

Так вот, в PHP 5.3.0 ситуация изменится:

— Improved php.ini handling: (Jani)
. Added «.htaccess» style user-defined php.ini files support for CGI/FastCGI
. Added support for special [PATH=/opt/httpd/www.example.com/] and [HOST=www.example.com] sections. Directives set in these sections can not be overridden by user-defined ini-files or during runtime.

Этого мне нехватало куда больше, чем пространств имён и «?:», который там тоже появятся. По правде говоря, там есть ещё более значительное для меня изменение — Late Static Binding вкупе с __callstatic и $foo:myFunc(). Или даже «Improved PHP runtime speed and memory usage: Added garbage collector».

12 комментариев
siberian-husky.livejournal.com 2008

А разве htscanner не умел «настройки PHP для определённого хоста»?

Евгений Степанищев (bolknote.ru) 2008

Комментарий для siberian-husky.livejournal.com:

Умел. Но это несколько перанально и на скорости сказывается — в любой папке оно ищет файл и читает его при запуске.

biolante.livejournal.com 2008

Комментарий для Евгения Степанищева:

А чем «?:» отличается от простого ?: ?

indeyets.livejournal.com 2008

Комментарий для Евгения Степанищева:

А по мне, так garbage collector важнее :-)

хотя мне вообще категорически нравится 5.3. Очень правильный и интересный релиз

Евгений Степанищев (bolknote.ru) 2008

Комментарий для indeyets.livejournal.com:

Да-да, поддерживаю — очень интересный релиз. Кстати, мне всегда казалось, что garbage collection в PHP есть, кажется, я где-то это прочитал. И я очень недоумевал, когда обнаруживал, что unset достаточно больших вещей ничего не даёт.

indeyets.livejournal.com 2008

Комментарий для Евгения Степанищева:

не… не путай :)
там всегда был простой сборщик мусора, который чистил память по выходу из метода/функции и иногда в другое время, но: он был простой (освобождал то, на что явно никто не ссылается)

в 5.3 же появился сборщик для неиспользуемых структур с циклическими ссылками (такой-же пару лет назад появился в python, например)

Евгений Степанищев (bolknote.ru) 2008

Комментарий для indeyets.livejournal.com:

Вот оно что. А когда срабатывает этот «простой» и тот что появился? С одной стороны, конечно есть функция memory_max_usage, а с другой — память иногда не освобождается даже на каких простых вещах, вроде удаления массивов скаляных типов без ссылок.

indeyets.livejournal.com 2008

<?php

for ($i = 0; $i < 10; $i++) {
    echo memory_get_usage().«\n»;
    $var = range(1, 100000);
    echo memory_get_usage().«\n»;
    unset($var);
}

Евгений Степанищев (bolknote.ru) 2008

Комментарий для indeyets.livejournal.com:

Я даже запускать не буду — верю что освобождается. Я говорю о том, что иногда этого не происходило.

Евгений Степанищев (bolknote.ru) 2008

Комментарий для biolante.livejournal.com:

Если это то, о чём я думаю, то это позволяет делать вот так вот:

isset($a) ?: ’default’;

Игорь 2013

Что прописать в .htaccess чтобы php изменить на 5.3 ?

Евгений Степанищев (bolknote.ru) 2013

Комментарий для Игорь:

Что-то я не понял вопроса. Что вы хотите получить?