草庐IT

Twig_SimpleFilter

全部标签

php - 从没有 Twig 过滤器的函数返回原始 HTML

我有一个具有返回HTML的函数的类。classMyParser{publicfunctiongetHTML(){return'HelloWorld';}}然后在我的Twig模板中,我使用raw过滤器输出文字HTML,而不是让Twig为我转义它:{{myParserInstance.HTML|raw}}有没有办法让函数(不是TwigFilterorFunction)返回原始HTML并按原样呈现?或者我将如何创建一个Twig过滤器或函数来无缝地为我做这件事?例如,我不会想要这样的东西:{{render(myParserInstance)}}相反,我只想使用HTML函数调用。这是完全可能的还

php - Drupal 8 自定义 block (模块)创建 Twig 模板文件

我有一个自定义模块,它创建一个包含字段元素的自定义block。一切正常,但我需要为这个block设置主题。我检查了这里的其他帖子,但没有成功。我已经启用了twig调试并获得了主题建议。仍然没有运气。谁能给我指出正确的方向。这是我目前所拥有的:我的模块/我的模块.模块//这里没有相关内容my_module/src/Plugin/Block/myModuleBlock.php'select','#title'=>$this->t('test'),'#description'=>$this->t('testlist'),'#options'=>array('Test'=>$this->t('

php - 在 Twig 模板中调用 {% spaceless %} 的性能成本

我有许多Twig模板,其中包含许多级别的block,这些block使用制表符进行缩进。最终结果是一个包含很多行(3700+)的HTML文件,其开头最多包含10个选项卡。手动删除选项卡后,文件缩小了25%。我知道我可以使用{%spaceless%}函数来包装此代码并删除所有必要的制表符/空格。我也知道还有其他解决方案,比如在多个文件中分离代码然后包含它们,但这需要更多的工作。我的问题是关于性能的,使用{%spaceless%}删除这些空格会产生成本,但我很确定该操作只会执行一次,届时Twig编译器会将Twig文件转换为缓存中的PHP文件。所以它应该不会对产品网站产生负面影响。我的开发环境

php - Blade 和 Twig 之间的区别

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我想知道Blade和Twig模板之间的区别。使用一个比另一个有什么优势?

php - 使用 Twig 进行模板化 - 永久访问我所有模板中的变量

我刚刚开始调查Twig我想知道我将如何完成以下任务。我有一个变量$logged_in,我需要在我网站的每个页面中访问它,我希望不是每次都在数据数组中将它传递给twig渲染器,而是有一种方法可以我在某个地方声明它,并且每个模板都可以访问它。我是否需要构建一个扩展来完成这个/或者这是否可能?我已经查看了文档的每一页,但我在尝试按照此处所述扩展基本模板时遇到了问题...TwigDocumentation|Recipes|MakingtheTemplatesawareoftheContext无效链接这是正确的方法吗?谢谢 最佳答案 只是re

php - 使用 Twig PHP 模板引擎构建站点

我已通读Twig的文档,但我不太明白如何将这些点联系起来。假设我创建了一个文件index.php,它实例化了Twig_Loader_Filesystem和Twig_Environment类。我可以使用loadTemplate()在这里加载一个模板。单个页面内容存储在.phtml或.html.twig文件中,这些文件可能链接到站点上的其他页面。但是,它们总是会链接到另一个.php文件,而不是模板。抽象此过程的最佳方法是什么,以便我只需要一个php文件用于多个模板?访问权限?某种路由器类?有没有例子? 最佳答案 如果您使用多个PHP文件

php - 使用 Twig 创建数组

我在PHP中有这个:$units=array();foreach($popPortsas$port){$units[$port->getFrameNo()][$port->getSlotNo()][$port->getPortNo()]=$port->getPortNo();}我怎样才能在Twig中实现同样的效果?到目前为止我已经试过了:{%setframes=[]%}{%forrowinobject.popPorts%}{%setframes[row.frameNo][row.slotNo][row.portNo]=row.portNo%}{%endfor%}{{dump(frame

php - Twig 忘记了数组键

我在Symfony2中对twig有一个奇怪的问题。我正在使用以下数组:[days]=>Array([1]=>Array([money]=>9)[2]=>Array([money]=>21)[3]=>Array([money]=>38)[4]=>Array([money]=>6)[18]=>Array([money]=>6)[19]=>Array([money]=>3)[31]=>Array([money]=>11))为了测试这一点,我使用了以下代码{%forkeyindays%}{{key}}{%endfor%}但输出显示如下0123456但它应该是这样的1234181931看起来tw

php - Twig 中 escape ('html' ) 和 escape ('html_attr' ) 的区别

自版本1.9.0起,Twig为escape过滤器提供html_attr策略(参见documentation)。html策略使用htmlspecialcharsPHP函数(通过快速查看源代码可以确认这一点)。html_attr策略使用了一系列自定义替换,这些替换似乎最终具有相同的效果。这两种策略有区别吗? 最佳答案 source说:/**WhileHTMLsupportsfarmorenamedentities,thelowestcommondenominator*hasbecomeHTML5'sXMLSerialisationwhi

php - 如何从模板引擎 TWIG 中的完整路径加载模板

我想知道如何从它的完整路径加载模板(比如FILEconstantgive)。实际上你必须像这样为模板设置一个“根”路径:require_once'/path/to/lib/Twig/Autoloader.php';Twig_Autoloader::register();$loader=newTwig_Loader_Filesystem('/path/to/templates');$twig=newTwig_Environment($loader,array('cache'=>'/path/to/compilation_cache',));然后:$template=$twig->load