我希望在我的 CakePHP 应用程序中实现 SASS ( http://sass-lang.org )。但我不想通过 Ruby 使用命令行编译它,而是让它在应用程序处于调试模式时自动将 SASS 文件转换为 CSS。
我过去用 LESS 做过这个。有没有人在 CakePHP 中为 SASS 做过类似的事情?
我如何看待它的一个示例(基于我的 LESS 实现的工作方式):
if (Configure::read('debug') > 0)
{
// import sass compiler
App::import('Vendor', 'vendorName');
$sass_directory = ROOT . DS . APP_DIR . DS . 'webroot' . DS . 'sass' . DS;
$css_directory = ROOT . DS . APP_DIR . DS . 'webroot' . DS . 'css' . DS;
vendorName::toCss($sass_directory, $css_directory);
}
所以它会读取 SASS 目录下的所有文件,然后将其编译成 CSS 并放在 CSS 目录中。
根据 PHamlP 文档:https ://code.google.com/p/phamlp/wiki/SassOptions这个插件可以转换和移动整个目录。任何人都能够确认这符合我的想法吗?
我已经在一个独立的 PHP 文件上对其进行了测试:
require_once('Vendor/PHamlP_3.2/sass/SassParser.php');
$sass = new SassParser(array('style'=>'nested','template_location'=>'./sass','css_location'=>'./css'));
$css = $sass->toCss('./sass/master.scss');
echo $css;
哪个有效...但是,如果我必须告诉它 SASS 文件所在的位置(并且只能选择一个),那么我为什么还要在选项中声明 SASS 位置和 CSS 位置,然后它实际上并没有对CSS 文件...
有人可以提供一些想法,说明如何让它自动从 template_directory 获取 SASS 文件,然后将其保存在编译的 CSS 目录中吗?
我注意到 PHamlP 有一个 CakePHP 下载:https ://code.google.com/p/phamlp/downloads/list但它很旧,似乎想通过解析器运行实际引用的 SASS 文件,而不是仅仅编译它们并引用创建的 CSS 文件。除非我错了?CakePHP 版本只引用 CSS 文件,使用 SASS 文件构建它们。
更新:我试过 PHamlP,它只适用于 .sass 而不是 .scss!似乎也只能通过过滤器运行单个文件,而不是转换整个文件夹,例如说我正在使用 Compass 并希望将其全部编译成一个文件等。