Задача
Сделать механизм компиляции less в css для внедрения на сайт.
Реализация
Для реализации нам понадобятся два php файла:
lessc.php - файл компилятора. Скачать его можно здесь leafo.net/lessphp/ , при написании использовалась версия v0.3.9
less2css.php - файл-связка для запуска компилятора. Он содержит следующий код:
$lessPath = $_POST['lessPath'];
$cssPath = $_POST['cssPath'];
// Если файлу переданы оба пути
if ( !empty($lessPath) && !empty($cssPath) ) {
require_once "lessc.php"; // подключаем файл компилятора
$less = new lessc; // создаем объект
$less->setFormatter("compressed"); // устанавливаем форматирование на "сжатое"
$less->setImportDir("../"); // устанавливаем директорию для поиска файлов из директивы @import (ускоряет процесс)
$less->checkedCompile($lessPath, $cssPath); // компилируем файл
echo "Готово"; // Ура!
}
?>
Оба файла помещаются в директорию /!phph-pack/php/ (в дальнейшем наверное можно сделать их частью phph-пака)
В макете дизайна, в том месте, где будет вывод кнопки для компиляции, нужно поместить следующий код формы:
<input type='hidden' name='lessPath' value='../phph-layout.less'>
<input type='hidden' name='cssPath' value='../css/phph-layout.css'>
<button type='submit' class='btn'>Скомпилировать less</button>
</form>
Обертка и верстка - по вкусу.
Поля формы:
lessPath - путь до исходного файла less, который нужно скомпилировать
cssPath - путь до конечного файла css
форма ведет на файл связку less2css.php
файл-связка принимает данные формы и инициализирует запуск компилятора lessc.php
Для успешной компиляции, директория, в которую будет компилироваться файл, должна быть доступна для записи.
В нашем случае это /!phph-pack/css/
Оставить комментарий