Я раньше об этом как то не задумывался.
Потом задумался что в зависимости от ситуации может понадобится что то поменять.
Например все приложения используют класс Cache, который кэширует данные сохраняя их в файлы, но если установлен Memcache, что бы использовался он.
Сделал DI, теперь вначале скрипта стоит условие
if (MEMCACHE) {
$DI->set('Cache', new Memcache);
}
//Дальше где угодно в коде
$Cache = $DI->get('Cache');
Недавно столкнулся с такой задачей, нужно кэшировать картинки и видео на специальных кэширующих серверах, и что бы ссылки на файлы указывали на эти сервера.
В принципе можно написать новый класс для загрузки файлов, который будет грузить на эти сервера и возвращать нужные ссылки, потом так же с помощью DI подменить обычный класс для загрузки файлов, на модифицированный и всё, ничего больше переписывать не надо.
Но потом я увидел что для некоторых CMS есть специальные модули, которые надо только подключить и всё, остальное они сделают сами.
Примеры: cms
Стало непонятно, как? Ведь пока нужный модуль запуститься, уже половина системы может отработать, соответственно половина кэша запишется на локальный сервер, половина на кэширующий.
Потом я вспомнил про хуки в друпале, нарыл шаблон "наблюдатель", но так и не понял как это работает.
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2