davidecesarano / embryo-assets
一个简单的PHP库,可以将CSS或JavaScript文件合并、压缩并作为内联模式或捆绑文件提供服务。
1.0.1
2020-11-07 14:21 UTC
Requires
- php: >=7.1
- davidecesarano/embryo-http: dev-master
Requires (Dev)
- phpstan/phpstan: ^0.12.40
This package is auto-updated.
Last update: 2024-09-07 22:45:08 UTC
README
Embryo Assets是一个简单的PHP库,可以将CSS或JavaScript文件合并、压缩并作为内联模式或捆绑文件提供服务。
功能
- 文件合并、压缩并缓存,直到它们被修改。
- 使用由Andy Chilton提供的在线服务,http://chilts.org/。
- 在CSS文件中将相对路径替换为根公共路径。
- PSR-7兼容。
要求
- PHP >= 7.1
- PSR-7 http消息实现和PSR-17 http工厂实现(例如Embryo-Http)
安装
使用Composer
$ composer require davidecesarano/embryo-assets
使用方法
use Embryo\Assets\Assets; use Embryo\Http\Factory\ServerRequestFactory; $request = (new ServerRequestFactory)->createServerRequestFromServer(); $css = Assets::css([ '/path/to/css/file1.css', '/path/to/css/file2.css', '/path/to/css/file3.css' ]) ->setRequest($request) ->build('/path/to/source/compilers/');
这将生成
/path/to/compilers/app.css.map -> Sources array
/path/to/compilers/app.css -> Css code
现在,您可以在模板文件中使用它
<style> <?php echo $css; ?> </style>
文件合并、压缩并缓存在一个文件中。当您修改一个文件或更改数组CSS文件时,它将重新编译该文件。
您可以通过内置的PHP服务器快速测试它,访问https://:8000。
$ cd example
$ php -S localhost:8000
使用捆绑文件
如果您想包含捆绑文件而不是内联模式,请确保在公共文件夹中编译文件(例如,在assets
文件夹中)。
Assets::css([ '/path/to/css/file1.css', '/path/to/css/file2.css', '/path/to/css/file3.css' ]) ->setRequest($request) ->build('/path/to/assets/');
现在,您可以在<link>
标签中包含文件
<link rel="stylesheet" href="/assets/app.css" />
JS
它与CSS示例相同。您必须将CSS静态方法替换为js
静态方法。
选项
forceBuild(bool $forceBuild): self
如果true
,则对每个请求构建文件。默认是false
。
setFilename(string $filename): self
设置文件名。默认是app
。