Мне нужно создать кастомизацию веб-шаблона и дать моим клиентам форму для настройки стилей.
Я создал стили сайта в МЕНЬШЕ, и когда клиент изменяет некоторые настройки в форме (и нажимает кнопку Отправить), PHP создает динамически файлы CSS на основе кода LESS и настроек клиента.
я использую less.php. Но динамическое генерирование CSS из LESS очень медленный. Вот почему я хочу создать Файл CSS с переменными LESS, и я хочу автоматически генерировать окончательный файл CSS от «CSS файл» с переменными, и после использования только str_replace (), чтобы изменить переменную на значение. Это будет Быстрее решение!
Пример:
МЕНЬШИЙ файл
@color: red;
.container {
.box {color: @color; }
}
окончательный Файл CSS
.container .box {color: red; }
но мне нужно генерировать Файл CSS с переменными LESS, как это:
.container .box {color: @color; }
Как я могу создать файл, как это?
Кажется, вы не понимаете, что такое LESS, LESS — это препроцессор CSS, который компилирует код в CSS. CSS не поддерживает переменные, поэтому то, что вы спрашиваете, не имеет смысла. Вы используете LESS PHP, но вы действительно хотите удалить эту функциональность. Вопрос не имеет смысла для меня.
Мой ответ не даст вам того, что вы хотите, но, возможно, он передумает.
На самом деле то, что вы делаете сейчас, хорошо, но, как вы сказали, компиляция всего этого времени для каждого пользователя вредна для всех. Вот почему вы должны реализовать механизм кэширования. Сохраните скомпилированный (окончательный) CSS как файл на сервере и укажите пользователям этот файл. В ваш скрипт компиляции добавьте код, который будет проверять, старше ли кэшированный файл, чем, скажем, один день (или один час, но не меньше). Если он старше, то скомпилируйте новый.
Таким образом, вы будете компилировать только один раз за день. День например.
Вы также можете установить его всегда компилировать, если нет кэшированной версии. Это будет полезно, если вы меняете много вещей, тогда вы можете просто удалить кэшированный CSS, и будет сгенерирован новый.
Если у вас есть какая-то панель администратора с чем-то, что может изменить LESS-файл, просто добавьте еще одну строку в исполняемый код, который приведет к перекомпиляции или просто удалит (unlink()
) кэшированный файл.
Кэширование — это благословение, и оно будет полезно для вас, ваших пользователей и вашего сервера