使用 scssphp 的工作流程是什么?

What is the workflow for using scssphp?

我正在尝试将我的 css 迁移到 scss 以用于 PHP 应用程序,但我对生成 css 的正确工作流程感到困惑文件。我正在使用 scssphp,它是用 PHP 编写的 scss 的编译器。

在我的所有页面中,我都使用以下样式表:css/mycss.css。我已将样式表的 scss 版本放入 css/scss/mycss.scss。当我对 scss 文件进行更改时,我通过在浏览器中输入来在本地编译它:

localhost/mywebsite/style.php/mycss.scss

style.php文件如下:

require "vendor/leafo/scssphp/scss.inc.php";
$scss = new scssc();
$directory = "css/scss";
$server = new scss_server($directory,null,$scss);
$server->serve();

这会编译 scss 文件并将其写入 css/scss/scss_cache 文件夹。文件名是一些哈希。这是我生成的目录结构:

style.php
-css
 mycss.css
    -scss
     mycss.scss
        -scss_cache
         4edf7f7bf9238jdsk9281sjkj32.css

现在理想情况下,我希望编译器覆盖 css/mycss.css 文件。有没有办法做到这一点,或者用新编译的 css 替换原始 css 文件的正确工作流程是什么?我总是可以每次都复制和粘贴,但这似乎效率不高。

您必须将所有页面中的 css/mycss.css 替换为 mywebsite/style.php/mycss.scss

<link rel="stylesheet" href="/mywebsite/style.php/mycss.scss">

scssphp 现在将尝试从其缓存中读取 mycss.css 或编译它。

但我认为这不是使用 scss 的最佳方式。我建议使用官方 sass programms or event grunt 之一来实现自动化。

scssphp 用于直接提供样式表。但是如果你只想使用编译器功能,你可以这样做:

require "vendor/leafo/scssphp/scss.inc.php";
$scss = new scssc();

$scssIn = file_get_contents(__DIR__ . '/css/scss/mycss.scss');
$cssOut = $scss->compile($scssIn);
file_put_contents(__DIR__ . '/css/mycss.css', $cssOut);

参见http://leafo.net/scssphp/