Я использую PHP CSS препроцессор CssCrush в первый раз, и мне нужно реализовать csscrush_string()
функция в моем собственном менеджере активов. Ранее я использовал CssMin но теперь мне нужно использовать препроцессор.
Следующий фрагмент ниже, очевидно, имеет синтаксическую ошибку в $data = csscrush_string( string $string [, array $options ] );
и я не знаю, как это исправить — Я новичок в PHP.
ОБНОВЛЕНИЕ: я также попробовал: $data = Crush::csscrush_string();
но я получаю PHP Fatal error: Class 'Crush' not found...
даже если Crush
это класс.
Использование CssCrush (заменив CssMin):
<?php
private function process_resource($file, $type)
{
//...Files are combined and dumped into $data up here
// before running the preprocessor and minifier...
$data = str_replace($keys, $vals, $data);
$css_lib = VENDOR_DIR . "css-crush/css-crush/CssCrush.php";
if ($this->settings[$type]["minify"])
{
require $css_lib;
$data = csscrush_string( string $string [, array $options ] );
$data = trim($data);
}
}
Использование CssMin (работает):
<?php
$data = str_replace($keys, $vals, $data);
css_lib = VENDOR_DIR . "natxet/CssMin/src/CssMin.php";
if ($this->settings[$type]["minify"])
{
require $css_lib;
$data = CssMin::minify($data);
$data = trim($data);
}
Любая помощь (фрагмент кода) будет принята с благодарностью.
Это просто предположение, потому что я не знаю, что содержит $ data, но кажется, что это строка
менять
$data = csscrush_string( string $string [, array $options ] );
$data = trim($data);
в
$data = csscrush_string(trim($data));
Я проверил источник этой функции, и есть только одна опция, которую нужно передать, называемая «шаблон», если вы хотите передать ее, то вы должны вызвать функцию, как показано ниже
$data = csscrush_string(trim($data), array('boilerplate' => true));
Также учтите, что эта функция находится в пространстве имен, поэтому вы должны поставить
use \CssCrush\Crush\csscrush_string;
или функция класса, как
$data = \CssCrush\Crush\csscrush_string(trim($data));
Других решений пока нет …