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».
А разве htscanner не умел «настройки PHP для определённого хоста»?
Комментарий для siberian-husky.livejournal.com:
Умел. Но это несколько перанально и на скорости сказывается — в любой папке оно ищет файл и читает его при запуске.
Комментарий для Евгения Степанищева:
А чем «?:» отличается от простого ?: ?
Комментарий для Евгения Степанищева:
А по мне, так garbage collector важнее :-)
хотя мне вообще категорически нравится 5.3. Очень правильный и интересный релиз
Комментарий для indeyets.livejournal.com:
Да-да, поддерживаю — очень интересный релиз. Кстати, мне всегда казалось, что garbage collection в PHP есть, кажется, я где-то это прочитал. И я очень недоумевал, когда обнаруживал, что unset достаточно больших вещей ничего не даёт.
Комментарий для Евгения Степанищева:
не… не путай :)
там всегда был простой сборщик мусора, который чистил память по выходу из метода/функции и иногда в другое время, но: он был простой (освобождал то, на что явно никто не ссылается)
в 5.3 же появился сборщик для неиспользуемых структур с циклическими ссылками (такой-же пару лет назад появился в python, например)
Комментарий для indeyets.livejournal.com:
Вот оно что. А когда срабатывает этот «простой» и тот что появился? С одной стороны, конечно есть функция memory_max_usage, а с другой — память иногда не освобождается даже на каких простых вещах, вроде удаления массивов скаляных типов без ссылок.
<?php
for ($i = 0; $i < 10; $i++) {
echo memory_get_usage().«\n»;
$var = range(1, 100000);
echo memory_get_usage().«\n»;
unset($var);
}
Комментарий для indeyets.livejournal.com:
Я даже запускать не буду — верю что освобождается. Я говорю о том, что иногда этого не происходило.
Комментарий для biolante.livejournal.com:
Если это то, о чём я думаю, то это позволяет делать вот так вот:
isset($a) ?: ’default’;
Что прописать в .htaccess чтобы php изменить на 5.3 ?
Комментарий для Игорь:
Что-то я не понял вопроса. Что вы хотите получить?