PHP-эквивалент объектов ASP.NET Application / Cache

Мой Google-фу не раскрыл того, что я ищу, поэтому я помещаю это в толпу.

Исходя из фона разработки ASP.NET, я привык к тому, что коллекции Application и Cache доступны для меня, чтобы хранить редко используемые, но часто используемые ресурсы (такие как строки поиска из базы данных или содержимого статических XML-документов) в память веб-сервера, поэтому мне не нужно перезагружать эти часто используемые элементы во время каждого запроса.

Есть ли у PHP эквивалент? Я кратко прочитал о расширении memcache, но это не сработает для меня (поскольку у меня нет контроля над конфигурацией сервера.) Я испытываю соблазн реализовать что-то, что позволило бы мне предварительно разобрать или предварительно -выберите ресурсы и создайте своего рода «кэш» кэш-памяти PHP, которые будут строить кешированный объект из литералов, хранящихся в файле, но это кажется очень хриплым решением для меня.

Есть ли что-то в PHP (или, альтернативно, вспомогательная библиотека какого-то типа), что позволит мне выполнить это с использованием лучших практик?

Related of "PHP-эквивалент объектов ASP.NET Application / Cache"

Короче говоря, нет, такая вещь не доступна изначально в PHP. Чтобы понять, почему, вы должны понимать, что PHP имеет всю среду, созданную для каждого запроса, и впоследствии ее срывают в конце запроса. PHP дает вам $ _SESSION для хранения переменных сеанса, но после обработки в документах вы увидите, что эта переменная также создается во время каждого запроса. PHP (или mod php, чтобы быть более конкретным) принципиально отличается от других «серверов приложений». В принципе, это не сервер приложений. Это бегун сценария запроса.

Теперь, не поймите меня неправильно, PHP позволяет вам хранить данные на уровне приложений, но вам нужно будет перейти в базу данных или на диск, чтобы получить ее. Помните об этом, но не беспокойтесь об оптимизации производительности до тех пор, пока не будет показано, что преформация является проблемой. И я угадаю, что 99 раз из 100, к тому времени производительность – это проблема, которая не из-за плохого кода, который вы написали, у вас будут ресурсы для создания собственного довольно маленького сервера memcached.

Например, посмотрите на библиотеку Zend_Cache. Он может кэшировать несколько бэкендов.