Функция уровня приложения в PHP (аналогично загрузке страницы в global.asax) - PullRequest
1 голос
/ 10 марта 2011

В настоящее время я создаю приложение на PHP с использованием CodeIgniter.Обычно в приложениях .NET, если мне нужно выполнить определенную функцию только при первом запуске приложения, я могу поместить код в Global.asax, и тогда этот код будет выполнен.Как симулировать аналогичную функциональность в PHP?

Например, у меня есть файл CSS, который нужно проанализировать на стороне сервера (нужен для изображений Akamai, поэтому путь в процессе разработки, контроля качества и производства отличается)В .NET вместо анализа файлов все время, когда пользователь нажимает на приложение, я делаю это только при перезапуске приложения.Как мне это сделать в PHP?

Ответы [ 2 ]

0 голосов
/ 10 марта 2011

Одним из решений, которое может быть более сложным, чем вы хотели бы, было бы отделить эту функцию перезаписи от вашего веб-сервера (например, иметь скрипт, который вы запускаете, когда вам нужно перестроить файлы CSS, который требует запуска вручную).

Если вы не хотите делать это вручную, вы можете выполнить проверку при загрузке приложения, которая выполнит замену css, а затем установить флаг в переменной плоского файла или среды, которую ваше приложение будет делать. позже используйте, чтобы определить, что не нужно повторно запускать css replace. Только что посмотрел чужой пост, касающийся использования Memcache ... это отлично подойдет для этой пометки.

0 голосов
/ 10 марта 2011

В PHP нет понятия «приложение».Скрипт - это начало и конец всего «приложения».Состояние не поддерживается, когда нет активного соединения, кроме того, что хранится в $ _SESSION для каждого пользователя.

Вы можете заставить PHP загружать определенный файл перед запуском первой строки кода в любом конкретном сценарии.с настройками ini auto_prepend_file (и то же самое для выключения с auto_append_file).

Если вы хотите кэшировать обработанный файл CSS, вы можете записать его и периодически обновлять другим скриптом.Работа cron подойдет для этого случая.

...