2013-07-04 3 views
1

Я использую событие application_start в C# в glocal.ascx.php альтернатива Application_Start в C#

Мне нужно создать что-то подобное в php, поэтому, когда приложение сначала загружается, я могу кэшировать все данные в первый раз.

Кто-нибудь знает хороший способ сделать это.

+0

Raw PHP не является основой как таковой, поэтому вам нужно будет сделать это вручную или подумайте об использовании инфраструктуры, такой как FuelPHP – Bojangles

+0

, просто используйте деструктор ваших классов для кеширования чего-либо, как только вы окажетесь в первый раз. и загружать кеш в конструкторе, который вы приходите во второй раз;) – Preexo

ответ

0

В php каждый скрипт последовательно проходит весь код и затем умирает. Итак, если я правильно понимаю ваш вопрос, вы в основном хотите создать систему кэширования в верхней части своего скрипта.

В моих простых проектах я просто включаю файл (я называл его assign.inc), который обрабатывает все мои глобальные задачи на сайте. Он загружает сначала на каждой странице и настраивает мое соединение сеанса/db и т. Д.

В моих больших проектах я написал весь трафик через index.php (через .htaccess), это инициирует мой класс CMS, который делает все, кроме __construct.

Помогло ли это?

1

PHP не имеет ничего похожего на AppDomain в ASP.NET.

В ASP.NET веб-сервер появляется, когда процесс AppDomain и (синхронные) запросы обрабатываются как «потоки HttpContext» внутри этого процесса. Асинхронные IHttpHandlers могут обрабатываться несколькими потоками, но также используют один и тот же процесс AppDomain.

В PHP каждый запрос представляет собой единый процесс (с FastCGI-потоком), но у вас нет статической общей области. Скрипт выполняется, а затем умирает. Чтобы обмениваться данными в памяти, вам нужны помощники, такие как memcache.