细枝宏可以返回值吗? - php

我正在尝试在Twig中编写模板。在其中,我希望它对来自控制器的字符串数据执行一些操作。特别是,有一种常见的操作(从underscore_case转换为CamelCase),我想带入一个单独的函数中。之后,我可以像{% set x = magic(a) ~ magic(b) %}一样重复使用它。但是我找不到如何在模板本身内部实现这种可重用的功能。有宏,但是宏似乎无法返回值。过滤器是另一个合适的选择,但我只能在PHP方面进行定义。

能做到吗?还是应该在所有高级字符串操作控制器端执行操作?有点像是我要把显示逻辑的一部分拉进去。事物应该在视图中。

参考方案

Twig用于输出数据。如果您需要“转换”数据,则需要先执行此操作,然后再将其发送到twig或extend twig

理想情况下,您发送到细枝的所有数据只是变量和数组,它们自己需要最少的操作。

当您实际上处于“细枝末节”状态时,可以认为数据处理已“完成”,只需要用最少的逻辑就可以在适当的位置输出数据来决定用户界面样式。

因此,在将数据发送到树枝之前,请重新审视逻辑并更好地准备数据。

扩展工具包类的示例,该类包含我们的魔术方法以执行真正的向导。

class CustomToolkit 
{
    public function magic_a($a) 
    {
        return strtolower($a);    }

    public function magic_b($b) 
    {
        return camel_case($b);
    }

    public function magic_tidle($a, $b) 
    {
        return $this->magic_a($a) ~ $this->magic_b($b);
    }
}

然后将其添加到树枝实例。我在这里添加了完整的实例化循环。如果您有服务提供商,则可以从那里获取实例并将其添加到该实例中。

$twig = new Twig_Environment(new Twig_Loader_Array([
                                                      'html' => $contents
                                                   ]),[
                                                      'auto_reload' => true,
                                                      'debug' => false,
                                                   ]);
$twig->addExtension('toolkit', new CustomToolkit ());
echo $twig->render('html', $values);

然后,在您的树枝代码中,您应该能够按照以下步骤进行操作:

{% set x = toolkit.magic_tidle("value","value_b") %} 

Symfony 2在用户站点上动态添加字段以形成表单 - php

我正在研究调查包。目的是为用户提供一个功能全面的调查系统。我已经准备好一个后端,使您可以创建调查,添加问题(打开文本,单选按钮,复选框),是否需要提问,激活调查,生成令牌以及通过电子邮件将令牌发送到调查的链接。当然,我也有显示调查并保存答案的前端。现在,我想添加另一种可能性。带有答案(单选或复选框)和评论的问题。例如:你有一只狗吗?是没有如果用户选择是,则附…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP-如何获取类的成员函数列表? - php

如果我知道班级的名字。有没有办法知道类的成员函数列表? 参考方案 get_class_methods()是你的朋友