Чего следует избегать при кодировании PHP-программ, работающих на OpCode Cachers - PullRequest
2 голосов
/ 06 января 2010

Каких вещей мне следует избегать, если я хочу поддерживать PHP OpCode Cache? Являются ли статические вызовы злом? А как насчет __autoload?

Ответы [ 2 ]

6 голосов
/ 06 января 2010

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

... И мне никогда не приходилось брать что-то «особенное» во время разработки: в любом случае, использование APC или нет было прозрачным, единственное отличие было в производительности.

У меня никогда не было проблем ни со статическими вызовами, ни с автозагрузкой, например - ни с чем-либо еще (И я работал с парой различных приложений Frameworks и OSS)

Тем не менее, есть одна хорошая привычка: если вы планируете использовать APC на своем производственном сервере, на всякий случай также используйте его на своих машинах разработки - но включите на них опцию apc.stat, поэтому Ваша жизнь не усложняется механизмом кэширования кода операции.

1 голос
/ 06 января 2010

Кэш кода операции создается для кэширования скомпилированной версии скрипта. Внутренний Zend Engine всегда компилирует PHP-скрипты для более быстрых кодов операций перед запуском скрипта, и именно эти коды будут сохранять кеш. Таким образом, ваш сценарий будет вести себя точно так же, как и без кеша, только будет быстрее запускаться.

Механизм кэширования обычно просматривает временную метку (время модификации или mtime) файла PHP. APC может быть настроен на поиск времени модификации для каждого запроса (по умолчанию), но он также может быть настроен так, чтобы НЕ проверять время модификации, и в этом случае вам придется вручную очищать кэш для принятия изменений. См. Этот параметр в кэше APC:

http://php.net/manual/en/apc.configuration.php#ini.apc.stat

...