0

我第一次使用 PHP CSS 预处理器CssCrush,我需要在csscrush_string()我的自定义资产管理器中实现该功能。以前我使用的是CssMin,但现在我需要使用预处理器。

下面的代码片段显然有一个语法错误,$data = csscrush_string( string $string [, array $options ] );我不知道如何纠正它。

我也尝试过:$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);
}
4

1 回答 1

1

它只是猜测,因为我不知道 $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));
于 2015-08-06T20:44:34.433 回答