Говоря lessphp, что мне нужно проверить папку, а не только один файл, чтобы обновить файл output.css?

Я включаю lessphp с этим кодом:

require_once(__DIR__.'/less/lessc.inc.php');
$less = new lessc;
$less->checkedCompile(__DIR__."/less/style.less", __DIR__."/css/style.css");

Но так как я включаю некоторые другие файлы поменьше в style.less, я должен каждый раз после любого изменения в любом импортированном файле поменьше выводить файл output.css, в котором я вижу эти изменения … у кого-либо есть идеи, как я могу сказать сценарию, что он Нужно проверить всю папку «меньше» для каких-либо изменений?

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

Хорошего дня!

1

Решение

От документация по Lessphp.

Хотя есть проблема. CheckCompile очень прост, он только проверяет время модификации входного файла. Он не знает ни о каких файлах из @import.

По этой причине у нас также есть cachedCompile. Это немного сложнее, но дает нам возможность проверять изменения всех файлов, включая импортированные. Он принимает один аргумент: либо имя файла, который мы хотим скомпилировать, либо существующий объект кэша. Его возвращаемое значение является обновленным объектом кэша.

Так что кажется, что cachedCompile это метод для вас.

Это код для вашего случая:

require_once(__DIR__ . '/less/lessc.inc.php');

$inputFile  = __DIR__ . "/less/style.less";
$outputFile = __DIR__ . "/css/style.css";
$cacheFile  = $inputFile . ".cache";

if (file_exists($cacheFile)) {
$cache = unserialize(file_get_contents($cacheFile));
} else {
$cache = $inputFile;
}

$less = new lessc;
$newCache = $less->cachedCompile($cache);

if (!is_array($cache) || $newCache["updated"] > $cache["updated"]) {
file_put_contents($cacheFile, serialize($newCache));
file_put_contents($outputFile, $newCache['compiled']);
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]