palmiot / twig-extensions
为Twig提供一些有用的过滤器。
1.0.0
2020-10-27 19:39 UTC
Requires
- php: >=5.3.0
- matthiasmullie/minify: >=1.3.63
- tholu/php-packer: >=0.2.0
This package is auto-updated.
Last update: 2024-09-28 03:58:32 UTC
README
为Twig提供一些有用的过滤器和函数。
安装
可以使用composer轻松安装扩展。
composer require palmiot/twig-extensions
用法
$twig = new Twig_Environment($loader, $options); $twig->addExtension(new Palmiot\Twig\Base64Extension()); $twig->addExtension(new Palmiot\Twig\BasenameExtension()); $twig->addExtension(new Palmiot\Twig\MinifyExtension()); $twig->addExtension(new Palmiot\Twig\PackerExtension()); $twig->addExtension(new Palmiot\Twig\PathinfoExtension()); $twig->addExtension(new Palmiot\Twig\RemoteFileExtension());
在symfony项目中使用时,需要将扩展注册为服务。
services: twig.extension.base64: class: Palmiot\Twig\Base64Extension tags: - { name: twig.extension } twig.extension.basename: class: Palmiot\Twig\BasenameExtension tags: - { name: twig.extension } twig.extension.minify: class: Palmiot\Twig\MinifyExtension tags: - { name: twig.extension } twig.extension.packer: class: Palmiot\Twig\PackerExtension tags: - { name: twig.extension } twig.extension.pathinfo: class: Palmiot\Twig\PathinfoExtension tags: - { name: twig.extension } twig.extension.remotefile: class: Palmiot\Twig\RemoteFileExtension tags: - { name: twig.extension }
Base64扩展
将Base64函数暴露给Twig,用于使用MIME base64编码和解码数据。
{{ "palmiot/twig-extensions"|base64_encode }}
{{ "cGFsbWlvdC90d2lnLWV4dGVuc2lvbnM="|base64_decode }}
Basename扩展
将basename函数暴露给Twig,用于返回路径的最后一个组件。
{{ basename("/etc/sudoers.d") }} <!-- sudoers.d -->
{{ basename("/etc/sudoers.d", '.d') }} <!-- sudoers -->
Minify扩展
用于压缩从Twig压缩CSS(层叠样式表)和JS(JavaScript)。(使用MatthiasMullie\Minify进行压缩)
{{ minify('css', "-0px") }} <!-- 0 -->
{{ minify('js', "object['property']") }} <!-- object.property -->
Packer扩展
用于从Twig打包JS(JavaScript)内容。(使用Tholu\Packer\Packer打包器)
{{ packer("alert('checking this');") }} <!-- eval(function(p,a,c,k,e,d)... -->
Pathinfo扩展
将pathinfo函数暴露给Twig,用于获取文件路径的信息。
{{ "/www/htdocs/inc/lib.inc.php"|pathinfo('PATHINFO_DIRNAME') }} <!-- /www/htdocs/inc -->
或
{% set pathData = "/www/htdocs/inc/lib.inc.php"|pathinfo %}
{{ pathData.dirname }} <!-- /www/htdocs/inc -->
RemoteFile扩展
用于获取任何URL的内容,如果您愿意,可以将其保存为新文件。
{% set content = remote_content("https://...") %} <!-- content of url inside the variable "content" -->
{% set localFileName = remote_file("https://...", "../templates", "test.html.twig") %} <!-- the name of the new file saved with the content of the url into the directory `../templates` with name `test.html.twig` -->