Я переписываю веб-сайт, который будет поддерживать несколько скинов. В настоящее время я просто планирую разрешить изменение изображений и CSS, но базовый HTML не изменится. И если скин не изменяет изображение или файл CSS, он наследует этот файл от базового скина.
Имея это в виду, вот 3 способа, которые я рассмотрел до сих пор для обслуживания файлов, зависящих от скина:
- Оберните все запросы, специфичные для скина, в представлении с помощью функции поиска, т.е.:
<img src="<?php get_skin_file('/images/header.png', 'skin1'); ?>" /> function get_skin_file($file, $skin) { $skin_file = '/' . $skin . '/' . $file; if(is_readable($skin_file)) return $skin_file; return '/default/' . $file; }
Пусть php обслуживает изображение
<img src="/header.png.php?skin=skin1" />
Всегда пытайтесь загрузить файл скина, и если он не существует, используйте ModRewrite, чтобы отправить результат в скрипт обработчика php:
<img src="/skin1/header.png" />
Номер 2 - это то, что я хотел бы сделать, но меня просто беспокоит влияние на производительность того, что PHP обслуживает практически каждый файл изображения.
Моя пользовательская база достаточно мала (около 30 тысяч пользователей), поэтому я не думаю, что это действительно будет проблемой, но я также хотел бы узнать, что другие люди делают в этой ситуации.
Спасибо.
РЕДАКТИРОВАТЬ: я понятия не имею, почему мой код не отформатирован должным образом. Я нажал кнопку кода и проверил, что это 4 пробела, но это все еще уродливо. Извини за это.