2

複数の .scss ファイルを 1 つの .css ファイルにコンパイルしたいと考えています。

私のコード:

<?php
class SassCompile {

private $scssFileType = ".scss";
private $cssFileType = ".css";
private $cssFileName = "style";

public $scssFolder = "scss/";
public $cssFolder = "css/";

public $scssPhp = "scssphp/scss.inc.php";
public $scssPhpCompression = "scss_formatter_compressed";

public function compile($scss_folder, $css_folder, $scssphp, $scss_format) {
    require $scssphp;

    $scss_compiler = new scssc();
    $scss_compiler->setImportPaths($scss_folder);
    $scss_compiler->setFormatter($scss_format);


    $filelist = glob($scss_folder . "*" . $this->scssFileType);
    foreach ($filelist as $file_path) {
        $file_path_elements = pathinfo($file_path);
        $file_name = $file_path_elements['filename'];
        $file_content = file_get_contents($scss_folder . $file_name . $this->scssFileType);
        $string_css = $scss_compiler->compile($file_content);
        file_put_contents($css_folder . $this->cssFileName . $this->cssFileType, $string_css);
    }
}

}

$sassCompile = new SassCompile();
$sassCompile->compile($sassCompile->scssFolder, $sassCompile->cssFolder, $sassCompile->scssPhp, $sassCompile->scssPhpCompression);

私の import.scss は次のようになります

@import "style";
@import "test";

scss フォルダーに「_style.scss」と「_test.scss」の 2 つのファイルがあります。これらのファイルは、css フォルダーの stle.css にコンパイルされます。

ページがリロードされるたびに、css がコンパイルされます。ユーザーが増えると、Webサーバーが強制終了されます。

最新のコンパイルが行われてからファイルが変更された場合にのみコンパイルする関数を追加するにはどうすればよいですか?

ありがとうございました

4

0 に答える 0