splitbrain / lesserphp
lesserphp 是一个基于 leafo's lessphp 的 PHP 编译器,用于 LESS。
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: ^8.5
- rector/rector: ^0.19
- squizlabs/php_codesniffer: ^3.8
Suggests
- ext-fileinfo: For mime type guessing of embedded files
README
LesserPHP 是一个用 PHP 编写的 LESS 编译器。它基于 lessphp
,由 @leafo 编写。原始版本在 2014 年被废弃。由 @MarcusSchwarz 的分支在 2021 年大部分被废弃。还有一些其他可疑的分支。
这是一个有偏见的分支,目的是为了足够现代化代码库,使其更易于维护,而无需完全重写。它打算作为 DokuWiki 的稳定基础使用。这意味着移除了不必要的功能。
请注意,这个分支是基于 MarcusSchwarz/lesserphp
的 0.6.0-dev
分支,而不是更现代化的 master
分支。这有两个原因
master
分支没有跟上0.6.0-dev
分支中的所有错误修复(其中一些是由 DokuWiki 开发者贡献的)- 我只是在已经开始自己的重构后,才注意到 Marcus 在
master
分支上所做的相当大的重构。我不想重新开始。他的方法比我的更激进,可能比我可用的那个长周末还要长。
贡献和错误
请将错误报告到 问题跟踪器。只有在 DokuWiki 需要它们,或者你提供了 pull request 时,才可能修复。
除非伴随有 pull request,否则将忽略功能请求。
如何在您的 PHP 项目中使用
不要使用。你真的不希望使用 LESS 开始一个新项目。看起来 SASS 已经赢得了这场战斗。或者甚至可以跳过整个 CSS 预处理器 - 现代CSS本身就很强大。
如果你已经在它众多分支之一中使用了 lessphp
,使用这个版本不会有太大的不同。
你可以查看大部分原始文档 original documentation。API 大部分相同。对于 LESS 语法本身,请参考 upstream documentation 和 bundled Documentation。请记住,LesserPHP 不支持一些更现代的功能。
要安装它,使用 composer
composer require splitbrain/lesserphp
LesserPHP 的典型流程是创建一个新的 Lessc
实例,按你的喜好配置它,然后使用内置的编译方法之一告诉它编译某些内容。
compile
方法将 LESS 代码字符串编译成 CSS。
<?php require __DIR__ . '/vendor/autoload.php'; $less = new LesserPHP\Lessc; echo $less->compile(".block { padding: 3 + 4px }");
compileFile
方法读取并编译一个文件。它将返回结果或将结果写入由可选的第二个参数指定的路径。
<?php echo $less->compileFile("input.less");
如果在编译代码时出现任何问题,将抛出一个包含有用信息的异常。
<?php try { $less->compile("invalid LESS } {"); } catch (LesserPHP\ParserException $e) { echo $e->getMessage(); }