PHP basename Twig 等价物 [英] PHP basename Twig equivalent

查看:35
本文介绍了PHP basename Twig 等价物的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Twig 中是否有与 PHP basename() 等效的函数?

Is there an equivalent function to PHP basename() in Twig ?

类似于:

$file = basename($path, ".php");

推荐答案

默认情况下,Twig 中没有默认的 basename 过滤器样式,但是如果您需要扩展默认的 Twig 过滤器或函数你自己的,你可以按照你的 Symfony 版本的说明书中的描述创建一个扩展.http://symfony.com/doc/current/cookbook/templating/twig_extension.html

By default there is no default basename style of filter in Twig, but if you need to extend the default Twig filters or functions with your own, you can create an extension as described in the cookbook for your version of Symfony. http://symfony.com/doc/current/cookbook/templating/twig_extension.html

树枝扩展

// src/AppBundle/Twig/TwigExtension.php
namespace AppBundle\Twig;

class TwigExtension extends \Twig_Extension
{

    public function getName()
    {
       return 'twig_extension';
    }

    public function getFilters()
    {
       return [
           new \Twig_SimpleFilter('basename', [$this, 'basenameFilter'])
       ];
    }

    /**
     * @var string $value
     * @return string
     */
    public function basenameFilter($value, $suffix = '')
    {
       return basename($value, $suffix);
    }
}

配置文件

# app/config/services.yml
services:
    app.twig_extension:
        class: AppBundle\Twig\TwigExtension
        public: false
        tags:
            - { name: twig.extension }

树枝模板

{% set path = '/path/to/file.php' %}
{# outputs 'file.php' #}
{{ path|basename }}

{# outputs 'file' #}
{{ path|basename('.php') }}

{# outputs 'etc' #}
{{ '/etc/'|basename }}


{# outputs '.' #}
{{ '.'|basename }}

{# outputs '' #}
{{ '/'|basename }}

这篇关于PHP basename Twig 等价物的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆