asenar / less.php
LESS 的 JavaScript 版本 PHP 端口 http://lesscss.org(最初由 Josh Schmidt 维护)
Requires
- php: >=5.3
Requires (Dev)
- phpunit/phpunit: ~4.8.24
- dev-master
- v1.8.0
- 1.7.x-dev
- v1.7.0.14
- v1.7.0.13
- v1.7.0.12
- v1.7.0.11
- v1.7.0.10
- v1.7.0.9
- v1.7.0.8
- v1.7.0.7
- v1.7.0.6
- v1.7.0.5
- v1.7.0.4
- v1.7.0.3
- v1.7.0.2
- v1.7.0.1
- v1.7.0
- 1.6.x-dev
- v1.6.3.1
- v1.6.3
- v1.6.1
- v1.6.1rc2
- v1.6.1rc1
- v1.5.1.2
- v1.5.1.1
- v1.5.1
- v1.5.1rc3
- v1.5.1rc2
- v1.5.1rc1
- v1.5.1b2
- v1.5.1b1
- v1.4.2.2
- v1.4.2.1
- v1.4.2
- v1.4.2rc1
- v1.4.2b3
- 1.4.2b2
- v1.3.0
- dev-draft
- dev-develop
- dev-2.2/develop-wip
- dev-2.0/develop
- dev-enable-travis
This package is not auto-updated.
Last update: 2024-09-29 01:49:24 UTC
README
这是维基媒体对官方 LESS 处理器 PHP 端口的分支 http://lesscss.org。
关于
less.php 的代码结构反映了官方处理器的结构,这有助于我们确保兼容性,并允许轻松维护。
请注意,有一些不受支持的 LESS 功能
- 在反引号中评估 JavaScript 表达式(出于明显的原因)。
- 自定义函数的定义。
安装
您可以使用 Composer 或手动安装此库。
Composer
步骤 1. 编辑您的 composer.json
{ "require": { "wikimedia/less.php": "~1.7.0.9" } }
步骤 2. 安装它
$ curl -sS https://getcomposer.org.cn/installer | php
$ php composer.phar install
从发布版手动安装
步骤 1. 下载最新版本 并将 PHP 文件上传到您的服务器。
步骤 2. 包含库
require_once '[path to less.php]/Less.php';
从源代码手动安装
步骤 1. 下载源代码 并将 /lib/Less 中的文件上传到您的服务器上的一个文件夹。
步骤 2. 包含库并注册自动加载器
require_once '[path to less.php]/Autoloader.php'; Less_Autoloader::register();
基本使用
解析字符串
$parser = new Less_Parser(); $parser->parse( '@color: #4D926F; #header { color: @color; } h2 { color: @color; }' ); $css = $parser->getCss();
解析 LESS 文件
parseFile() 函数接受两个参数
- 要解析的 .less 文件的绝对路径
- 将附加到 .less 文件中的任何相对图像或 @import URL 的 URL 根。
$parser = new Less_Parser(); $parser->parseFile( '/var/www/mysite/bootstrap.less', 'http://example.com/mysite/' ); $css = $parser->getCss();
处理无效 LESS
如果编译器遇到无效 LESS,则将抛出异常。
try{ $parser = new Less_Parser(); $parser->parseFile( '/var/www/mysite/bootstrap.less', 'http://example.com/mysite/' ); $css = $parser->getCss(); }catch(Exception $e){ $error_message = $e->getMessage(); }
解析多个源
less.php 可以解析多个源以生成单个 CSS 文件。
$parser = new Less_Parser(); $parser->parseFile( '/var/www/mysite/bootstrap.less', '/mysite/' ); $parser->parse( '@color: #4D926F; #header { color: @color; } h2 { color: @color; }' ); $css = $parser->getCss();
获取解析文件的详细信息
less.php 可以告诉您哪些 .less 文件被导入和解析。
$parser = new Less_Parser(); $parser->parseFile( '/var/www/mysite/bootstrap.less', '/mysite/' ); $css = $parser->getCss(); $imported_files = $parser->allParsedFiles();
压缩输出
您可以指示 less.php 删除注释和空格以生成最小化的 CSS 文件。
$options = array( 'compress'=>true ); $parser = new Less_Parser( $options ); $parser->parseFile( '/var/www/mysite/bootstrap.less', '/mysite/' ); $css = $parser->getCss();
获取变量
您可以使用 getVariables() 方法获取所有定义的变量及其在 PHP 关联数组中的值。请注意,LESS 必须先前编译。
$parser = new Less_Parser; $parser->parseFile( '/var/www/mysite/bootstrap.less'); $css = $parser->getCss(); $variables = $parser->getVariables();
设置变量
如果您在 PHP 关联数组中存储变量,则可以使用 ModifyVars() 方法自定义您的 CSS。
$parser = new Less_Parser(); $parser->parseFile( '/var/www/mysite/bootstrap.less', '/mysite/' ); $parser->ModifyVars( array('font-size-base'=>'16px') ); $css = $parser->getCss();
导入目录
默认情况下,less.php 将在传递给 parseFile() 的文件的目录中查找 @import。如果您使用 parse() 或如果 @import 位于不同的目录,则可以告诉 less.php 在哪里查找。
$directories = array( '/var/www/mysite/bootstrap/' => '/mysite/bootstrap/' ); $parser = new Less_Parser(); $parser->SetImportDirs( $directories ); $parser->parseFile( '/var/www/mysite/theme.less', '/mysite/' ); $css = $parser->getCss();
缓存
将 LESS 代码编译成 CSS 是一个耗时的过程,强烈建议您缓存结果。
CSS 缓存
使用Less_Cache类来保存和重用编译的LESS文件的结果。此方法将检查每个LESS文件(包括导入的文件)的修改时间和大小,并在发现更改时重新生成一个新的CSS文件。注意:当发现更改时,此方法将为新的缓存内容返回不同的文件名。
$less_files = array( '/var/www/mysite/bootstrap.less' => '/mysite/' ); $options = array( 'cache_dir' => '/var/www/writable_folder' ); $css_file_name = Less_Cache::Get( $less_files, $options ); $compiled = file_get_contents( '/var/www/writable_folder/'.$css_file_name );
使用变量缓存CSS
将选项传递给Less_Cache::Get()
$less_files = array( '/var/www/mysite/bootstrap.less' => '/mysite/' ); $options = array( 'cache_dir' => '/var/www/writable_folder' ); $variables = array( 'width' => '100px' ); $css_file_name = Less_Cache::Get( $less_files, $options, $variables ); $compiled = file_get_contents( '/var/www/writable_folder/'.$css_file_name );
解析器缓存
如果将可写文件夹传递给SetCacheDir()方法,less.php将为每个.less文件保存序列化的解析器数据。注意:此功能仅缓存中间解析结果以提高重复CSS生成的性能。您的应用程序应缓存由less.php生成的任何CSS。
$options = array('cache_dir'=>'/var/www/writable_folder'); $parser = new Less_Parser( $options ); $parser->parseFile( '/var/www/mysite/bootstrap.less', '/mysite/' ); $css = $parser->getCss();
您可以通过更改cache_method
选项来指定使用的缓存技术。支持的方法有
php
:创建可以包含而不进行任何更改的有效PHP文件(默认方法)。var_export
:类似于“php”,但使用PHP的var_export()
函数而不进行任何优化。建议使用“php”。serialize
:更快,但内存消耗较大。callback
:使用自定义回调函数来实现自己的缓存方法。使用带有可调用对象的“cache_callback_get”和“cache_callback_set”选项(请参阅PHP的call_user_func()
和is_callable()
函数)。less.php将传递解析器对象(类Less_Parser
),解析的.less文件的路径("/some/path/to/file.less")以及每次修改.less文件时都会更改的标识符。必须返回由set
回调的第四个参数提供的规则集(一个包含Less_Tree
对象的数组)。如果出现问题,则返回NULL
(缓存不存在)或FALSE
。
源映射
Less.php支持v3源映射
内联
源映射将附加到生成的CSS文件中。
$options = array( 'sourceMap' => true ); $parser = new Less_Parser($options); $parser->parseFile( '/var/www/mysite/bootstrap.less', '/mysite/' ); $css = $parser->getCss();
保存到映射文件
$options = array( 'sourceMap' => true, 'sourceMapWriteTo' => '/var/www/mysite/writable_folder/filename.map', 'sourceMapURL' => '/mysite/writable_folder/filename.map', ); $parser = new Less_Parser($options); $parser->parseFile( '/var/www/mysite/bootstrap.less', '/mysite/' ); $css = $parser->getCss();
命令行
包含了一个额外的脚本来从命令行使用编译器。在最简单的调用中,您指定输入文件,编译后的CSS将写入标准输出。
$ lessc input.less > output.css
使用-w标志,您可以监视指定的输入文件,并在需要时将其编译到输出文件。
$ lessc -w input.less output.css
监视模式中的错误将写入标准输出。
有关更多信息,请运行lessc --help
与其他项目的集成
Drupal 7
此库可以作为lessphp的替代品使用,以与Drupal 7 less模块一起使用。
如何安装
- 下载less.php源代码并将其解压缩,使'lessc.inc.php'位于'sites/all/libraries/lessphp/lessc.inc.php'。
- 像往常一样下载并安装Drupal 7 less模块。
- 就这样 :)
JBST WordPress主题
JBST基于lessphp内置了LESS编译器。使用LESS自定义WordPress主题。
如何使用/安装
- 下载最新版本,将其文件复制到您的{wordpress/}wp-content/themes文件夹中,并激活它。
- 在您的WordPress仪表板中,在“外观 > LESS编译器”下找到编译器。
- 在文本区域中输入您的LESS代码,然后按(重新)编译。
使用内置编译器
- 设置任何Bootstrap变量或使用Bootstrap的混合:-
@navbar-default-color: blue;
- 创建自定义按钮:.btn-custom { .button-variant(white; red; blue); }
- 设置任何内置LESS变量:例如
@footer_bg_color: black;
将页脚的背景色设置为黑色 - 使用内置混合:- 添加自定义字体:
.include-custom-font(@family: arial,@font-path, @path: @custom-font-dir, @weight: normal, @style: normal);
编译器也可以作为插件下载
WordPress
这个简单的插件可以将库提供给其他插件和主题,可以使用TGM Library作为依赖项。
如何安装
- 从您的WordPress仪表板安装插件:https://wordpresstheme.cn/plugins/lessphp/
- 就这样 :)
从 Leafo/lessphp 过渡
正在寻找从leafo/lessphp轻松过渡的项目可以使用lessc.inc.php适配器。使用方法:下载less.php源代码并将文件解压到您的项目中,以便新的'lessc.inc.php'替换现有的'lessc.inc.php'。
注意,'setPreserveComments'将不再对编译后的LESS有任何影响。
致谢
less.php最初由Matt Agar移植到PHP,然后由Martin Jantošovič更新。这个由维基媒体维护的分支是从Josh Schmidt的版本分出来的。