nystudio107 / craft-closure
允许你在Twig中使用箭头函数闭包
1.0.6
2024-07-31 21:09 UTC
Requires
- php: ^8.0
- craftcms/cms: ^4.3.0 || ^5.0.0
- twig/twig: ^3.0.0
Requires (Dev)
- craftcms/ecs: dev-main
- craftcms/phpstan: dev-main
- craftcms/rector: dev-main
This package is auto-updated.
Last update: 2024-08-31 21:25:46 UTC
README
Craft CMS的闭包
允许你在Twig中使用箭头函数闭包
虽然闭包是一种猴子补丁,但它是一个非常干净、简单的补丁,它依赖于已经集成到Twig中的功能
要求
闭包需要Craft CMS 4.x或5.x版本
安装
要安装闭包,请按照以下步骤操作
-
打开终端并进入您的Craft项目目录
cd /path/to/project
-
然后告诉Composer需要该包
composer require nystudio107/craft-closure
关于闭包
Twig支持箭头函数闭包,但仅限于过滤器、映射和归约过滤器。
遗憾的是,Twig没有计划允许更广泛地使用箭头函数闭包。
Craft Closure允许你在任何地方使用箭头函数闭包,这对于使用Laravel Collection方法特别有用,其中许多方法都接受闭包作为参数。
使用闭包
一旦将nystudio107/craft-closure
包添加到您的项目中,就不需要进一步设置。这是因为它作为自动引导的Yii2模块运行。
然后您可以将一个箭头函数闭包作为参数传递给任何接受它们的东西,例如许多Laravel Collection方法
{% set collection = collect(['a', 'b', 'c']) %} {% set contains = collection.contains((value, key) => value == 'z') %}
或者您可以将一个箭头函数闭包分配给一个Twig变量以供重用
{% set collection = collect(['a', 'b', 'c']) %} {% set closure = (value, key) => value == 'a' %} {% set contains = collection.contains(closure) %}
使用箭头函数闭包特别有用,因为现在Craft元素查询都可以通过.collect()方法返回一个Collection。
关于Twig中箭头函数的更多信息
更多信息请参阅:Twig箭头函数
闭包路线图
要完成的事情和一些潜在功能的想法
- 初始版本发布
由nystudio107提供