个性化阅读
专注于IT技术分析

在Symfony 1.4中实现全局非静态辅助函数

在Symfony 1.4中, 通常会重用组件和部分以包含需要一些额外逻辑的HTML块。许多开发人员采用的其他解决方案是使用静态方法创建类, 这种方法的工作方式可以这么说, 但是它们具有预定义类的前缀, 并且始终可用。并非每个支持旧版Symfony 1.4项目的开发人员都可以使用的功能之一就是Helper功能的存在。

默认情况下, Symfony 1.4在整个项目中(几乎)有很多可用的辅助函数, 例如url_for, link_to等。如果你喜欢这种样式, 则需要知道可以创建相同类型的辅助函数而无需在各处编写相同的函数。

创建和使用助手

要在项目上全局公开帮助程序, 你需要在yourproject / lib中创建helper目录。在此文件夹中, 你可以根据需要创建许多帮助文件, 其中包含所需的帮助方法, 唯一的条件是文件名以* Helper结尾, 例如, 如果你要创建与在操作字符串时, 我们将在lib目录中创建一个名为StringHelpers.php的文件。在这里, 你应该创建简单的PHP函数, 而不是创建类。例如, 我们将包括一个使用跨度突出显示字符串HTML中给定单词的方法:

<?php 
// application/lib/StringHelper.php

function highlight_word_inside_html($content, $search){
    if(is_array($search)){
        foreach ( $search as $word )
        {
            $content = str_ireplace($word, '<span class="highlight_word">'.$word.'</span>', $content);
        }
    } else {
        $content = str_ireplace($search, '<span class="highlight_word">'.$search.'</span>', $content);        
    }
    
    return $content;
}

有了此方法, 你可以通过在要使用它的地方使用use_helper方法来包括该助手, 从而访问它(或者在助手文件中有很多东西的情况下, 也可以使用它)。例如, 在视图内部, 你可以简单地执行以下操作:

<?php use_helper('String') ?>

<!-- In your template -->
<?php 
    // Outputs: <p>Hello <span class="highlight_word">world</span></p>
    echo highlight_word_inside_html("<p>Hello world</p>", "world");
?>

如你所见, 可以说, 使用助手可以编写简单的PHP方法, 并且它们可以在项目中的任何地方使用。要了解有关Symfony 1.4的use_helper方法的更多信息, 请阅读官方旧版文档。

编码愉快!

赞(0)
未经允许不得转载:srcmini » 在Symfony 1.4中实现全局非静态辅助函数

评论 抢沙发

评论前必须登录!