本文概述
- 1.安装lessphp
- 2.使用编译器
在本文中, 你将学习如何在Symfony 3项目中将LESS字符串或文件编译为CSS。
1.安装lessphp为了仅使用php将LESS转换为CSS, 你将需要使用lessphp库。整个编译器都包含在一个单独的类中, 但是还包括一个附加的编译器命令行界面。它非常易于使用, 并且可以使用以下命令在你的Symfony项目中轻松地与composer一起安装:
composer require leafo/lessphp
安装该库之后, 你将可以在代码中使用lessc命名空间, 并且可以在代码中创建编译器的实例, 例如:
// Import less compileruse lessc;
// Instantiate compiler$less = new lessc();
// Use the compiler here ...
有关此库的更多信息, 请访问Github上的官方存储库。
2.使用编译器编译器非常简单, 可以为你完成所有工作, 但是你需要指出应该做什么以及如何进行。基本上, 你所需要做的就是创建一个编译器实例并执行一些提供的方法以根据需要进行编译:
A.编译较少的字符串并以CSS返回响应
下面的示例演示如何将简单的LESS字符串转换为CSS字符串, 并以CSS文件的内容类型作为响应返回(理论上将CSS文件作为响应返回):
<
?phpnamespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\HttpException;
// Use the Less compileruse lessc;
class DefaultController extends Controller{/*** @Route("/", name="homepage")*/public function indexAction(Request $request){// Create an instance of the Less Compiler class$less = new lessc;
// Your Less code$lessString = ".block { padding: 3 + 4px }";
// Use the compile method to convert less to css$css = $less->
compile($lessString);
// Return a response of CSS Type$response = new Response();
$response->
setContent($css);
$response->
setStatusCode(Response::HTTP_OK);
$response->
headers->
set('Content-Type', 'text/css');
return $response;
}}
B.编译较少的文件并写入CSS文件
以下示例使用compileFile方法将一个较少的文件编译为一个css文件:
<
?phpnamespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\HttpException;
// Use the Less compileruse lessc;
class DefaultController extends Controller{/*** @Route("/", name="homepage")*/public function indexAction(Request $request){// Create an instance of the Less Compiler class$less = new lessc;
// Path to the folder of the less files$lessFilesPath = $this->
get('kernel')->
getRootDir() . '/../web/assets/less/';
// Path to the folder of css files$cssFilesPath = $this->
get('kernel')->
getRootDir() . '/../web/assets/css/';
// Compile the all.less file to compiled.css$less->
compileFile($lessFilesPath. "all.less", $cssFilesPath. "compiled.css");
return new Response("Less File succesfully compiled");
}}
【如何在Symfony 3中使用纯PHP编译LESS】编码愉快!
推荐阅读
- ObjectMapper如果某些字段无法转换为对象的默认值
- 如何使用Smarty循环显示字母和数字的列表
- 如何在Silex中将PHP用作模板引擎而不是Twig
- 如何轻松将项目推到Twig中的数组
- PHP函数”func_get_arg”和”func_get_args”如何从PHP 5.x更改为PHP 7.x
- 如何使用短语法使用Twig检查变量是否存在以及是否为空
- 如何安全处理PHP错误(__toString()不得抛出异常)
- 每个Twig开发人员都应该能够回答的20个问题的答案和解释
- 如何在Symfony 1.4上使用Composer安装Packagist库