joeym / li3_frontender
Lithium PHP 资产扩展
Requires
- php: >=5.3
- composer/installers: dev-master
- kriswallsmith/assetic: dev-master
- leafo/lessphp: master
This package is not auto-updated.
Last update: 2024-09-14 11:41:46 UTC
README
这是我为 Lithium PHP 编写的资产插件的第二个草案。第一个是一个很好的学习经历,但我决定要改变一些事情。
此插件现在使用酷炫的 Assetic 库来提供其许多功能。
安装
有几种方式可以获取并使用此项目
使用 Composer
最佳选项(默认)
其他安装选项需要在
Libraries::add()
中设置配置参数 更多内容稍后介绍。
修改你的项目的 composer.json
文件
{ "require": { ... "joseym/li3_frontender": "master" ... } }
运行 php composer.phar install
(或 php composer.phar update
),除了将其添加到你的库中,你应该可以正常使用了。
通过子模块加载
更手动,真麻烦。说实话,Composer 真棒
此选项要求你告诉插件你不在使用
composer
。 请参阅库选项(source
)
-
将插件克隆/下载到你的应用的
libraries
目录。 -
告诉你的应用加载插件,通过在你的应用的
config/bootstrap/libraries.php
中添加以下内容实现Libraries::add('li3_frontender', array('source' => 'submodule'));
重要:将源设置为除 'composer' 之外的其他值。配置选项可用,请稍候
-
引入项目依赖项。
目前依赖项包括 Assetic、Symfony/Process 和 LessPHP。
$ cd app/libraries/li3_frontender
$ git submodule init
$ git submodule update
使用
如果你使用 CoffeeScript,你将必须确保 Node.JS 和 CoffeeScript 在你的服务器上运行。
此项目还包含 YUI Compressor,Assetic 使用它来压缩 JS 和 CSS 资产。
目前此项目支持以下前端工具
- LessCSS 编译
- CoffeeScript 编译
- 通过独特的文件名实现即时缓存破坏
- CSS/JS 压缩
该项目自带 Helper,以下是使用方法。
链接样式表
你分配页面样式的方式类似于使用默认的 Html 辅助函数
<?php $this->assets->style(array('main', 'menu', 'magic.less')); ?>
你可能会注意到其中的
.less
文件。添加文件扩展名对于确保.less
文件被编译是必需的,你可以包含.css
扩展名用于标准样式表,或者直接不包含。
链接脚本
与样式辅助函数类似,脚本辅助函数也接受一个数组。
<?php $this->assets->script(array('plugins', 'common', 'niftythings.coffee')); ?>
就像上一个示例中的
.less
文件一样,如果您将.coffee
文件传递给脚本助手,插件将编译它并提供服务正确的、编译后的 js。所有其他文件都假定是.js
。如果您愿意,可以随意将.js
添加到这些扩展名中。
生产环境与开发环境
此插件的后端将尽力确定您是在开发环境还是生产环境,如果您处于生产环境,此插件将自动压缩样式表和脚本并将它们合并为一个文件,并将该文件提供给您的布局或视图。
此选项和几个其他选项都可以通过 Libraries::add()
配置进行覆盖。以下是一个示例
<?php Libraries::add('li3_frontender', array( 'compress' => false, 'production' => true, 'assets_root' => LITHIUM_APP_PATH . "/webroot/assets", 'locations' => array( 'coffee' => '/usr/bin/libs/coffee', 'node' => '/usr/bin/libs/node' ), 'source' => 'submodule', 'cacheOnly' => true )); ?>
配置选项
清单
如果您希望在使用库配置而不是在视图中指定您的资产时使用资产清单。
首先,指定清单如下(下面,“main”是 JavaScript 文件清单的名称)
<?php Libraries::add('li3_frontender', array( 'manifests' => array( 'js' => array( 'main' => array( 'main.coffee', 'popup.js' ) ) ) )); ?>
然后,在调用助手时按名称引用清单
<?php $this->assets->script('main'); ?>
协作
一如既往,我欢迎您合作使事物“更好”,如果您觉得需要,请进行分支和贡献; 这些人做了,因为他们的加入,项目变得更加出色。