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

时间:2015-01-24 18:23:00

标签: php sass

我试图将我的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文件的正确工作流程是什么?我总是可以随时复制和粘贴,但这似乎并不高效。

2 个答案:

答案 0 :(得分:12)

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/

答案 1 :(得分:4)

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

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

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

但我不认为这是使用scss的最佳方式。我建议使用官方sass programms或事件grunt之一自动执行操作。