da / less-bundle
允许编译 less 文件的包
Requires
- php: >=5.3.3
- symfony/finder: >=2.1,<2.4
- symfony/framework-bundle: >=2.1,<2.4
- symfony/http-foundation: >=2.1,<2.4
- symfony/security-bundle: >=2.1,<2.4
- symfony/twig-bundle: >=2.1,<2.4
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is auto-updated.
Last update: 2024-09-13 23:11:00 UTC
README
DaLessBundle 是一个 Symfony2 的包,允许将 less 文件编译成 css,无需安装其他任何包。
安装
将以下行添加到 composer.json 文件的 require 部分
"da/less-bundle": "dev-master"
运行 composer update 命令
php composer.phar update
将以下行添加到 AppKernel.php 文件(强烈建议在 dev 部分添加)
$bundles[] = new Da\LessBundle\DaLessBundle();
将以下行添加到 routing.yml 文件(强烈建议在 routing_dev.yml 文件中添加)
DaLessBundle:
resource: "@DaLessBundle/Controller/"
type: annotation
prefix: /
更新资源
php app/console assets:install # Windows php app/console assets:install --symlink # Others
出于安全考虑,您需要在 config.yml 文件中指定可以访问 less 功能的一些角色
da_less: roles: [ROLE_ADMIN]
您可以通过以下方式绕过此安全设置(您不应在生产环境中这样做)
da_less: roles: [anonymous]
现在您应该能够使用 DaLessBundle。
访问编译接口
一个接口允许处理不同类型的编译
- 通过表单进行编译
- 通过配置文件进行编译
它可通过以下 URL 访问
/__da/less
通过表单进行编译
可以使用表单来配置和执行编译。
参数定义
可配置的 4 个参数是
-
默认目录:这是您可以找到将在编译期间使用的 less 文件的目录的路径。
-
覆盖目录:如果默认目录中有许多 less 文件,您可以定义一个指向覆盖目录的路径,其文件将覆盖默认目录中的文件。这对于您有一个配置 less 文件需要多个版本的情况非常有用。
-
源文件:这是编译的 less 源文件名称。如果没有定义默认目录,您必须指定文件的路径。
-
目标文件:这是 css 目标文件的名称和路径。
参数格式
出于明显的安全原因,无法访问磁盘上的任何文件。源文件必须位于以下格式的目录中
{bundle_root_dir}/Resources/private/less # for directories and less files. {bundle_root_dir}/Resources/public/css # for css files.
当然,文件可以位于此目录的任何子目录中。
已实现了一种语法糖,以避免重复此路径的繁琐操作
BundleName:path/to/directory/or/file
- BundleName 代表 Symfony 中的包名称(例如,此包的名称为 DaLessBundle)。
- path/to/directory/or/file 是相对于上述定义的目录的目录或文件的路径。
对于默认和覆盖目录
MySuperBundle:themes/aqua # equivalent to the directory /src/My/SuperBundle/Resources/private/less/themes/aqua MySuperBundle: # equivalent to the directory /src/My/SuperBundle/Resources/private/less
对于源和目标文件
MySuperBundle:themes/aqua/mystyle # equivalent to the file /src/My/SuperBundle/Resources/private/less/themes/aqua/mystyle.less for a source. # equivalent to the file /src/My/SuperBundle/Resources/public/css/themes/aqua/mystyle.css for a destination.
通过配置文件进行编译
可以使用配置文件来配置您想要经常执行的编译。
配置格式
配置文件
# /app/config/config.yml da_less: compilation: bootstrap: default: "BootstrapBundle:" override: "MySuperBundle:bootstrap" source: bootstrap destination: "MySuperBundle:bootstrap" custom: default: "MySuperBundle:" override: source: custom destination: "MySuperBundle:custom"
在此示例中,bootstrap 和 custom 是编译的标识符。与通过表单进行的编译一样,可以使用简化的表示法。
在标识符引导编译的情况下,您将拥有位于 BootstrapBundle 的 /src/Resources/private/less 目录中的文件,这些文件将被 MySuperBundle 的 /src/Resources/private/less/bootstrap 目录中的文件覆盖。Bootstrap 是一个由 less 文件编译而成的 CSS 库,您可以通过更改变量.less 文件中包含的值来自定义它。您可以想象在 MySuperBundle 的 /src/Resources/private/less/bootstrap 目录中存在一个 variables.less 文件。编译的源文件是 bootstrap.less(默认目录和覆盖目录合并的结果),目标文件是 /src/Resources/public/css/bootstrap.css。
如果没有覆盖目录,可以简化代码。因此
# /app/config/config.yml da_less: compilation: custom: default: "MySuperBundle:" override: source: custom destination: "MySuperBundle:custom"
等同于
# /app/config/config.yml da_less: compilation: custom: source: "MySuperBundle:custom" destination: "MySuperBundle:custom"
配置编译执行
要执行配置编译,只需使用接口或以下 URL
/__da/less/compile/{compilation_id}
要执行所有配置编译,只需使用接口或以下 URL
/__da/less/compile/_all
文档
在组件的 Resources/doc 目录中提供了英文和法文文档。