【问题标题】:Framework helpers, what are they for?框架助手,它们有什么用?
【发布时间】:2011-07-31 00:26:04
【问题描述】:

我开始研究一些框架。特别是 Code Igniter 让我着迷。但是通过搜索文件夹,我发现system/helpers 包含 21 个 PHP 文件。在这些文件中,我们发现了与 html、xml、字符串、数组、数字、表单等相关的数千个函数。

这应该很简单,但是我真的不明白这些helper文件的含义。我的意思是:什么通常被认为是帮助者?他们是必需的吗?我可以毫无风险地删除它们吗?

【问题讨论】:

  • 删除它们的唯一潜在好处是节省几 kb 的磁盘空间。如果不使用它们,那么将它们放在那里不会产生运行时开销。
  • 我讨厌听起来像个刺头......但阅读会回答这个问题......codeigniter.com/user_guide/general/helpers.html

标签: php codeigniter frameworks helper


【解决方案1】:

在包括 CodeIgniter 在内的许多框架中,“助手”指的是一组函数,它们通过将多个进程分组到一个函数中,使简单的例行任务更容易完成。

CodeIgniter 助手的官方文档可以在here找到。

它提供了以下解释:

顾名思义,助手可以帮助您完成任务。每个帮助文件 只是函数的集合 一个特定的类别。有网址 助手,帮助创建 链接,有表单助手 帮助您创建表单元素,文本 助手执行各种文本 格式化例程,Cookie 助手 设置和读取 cookie,文件助手 帮助您处理文件等。

帮助函数列表及其作用也可以在文档中找到。

PS。您不应该删除系统目录中的任何文件,因为它们可能在核心中被依赖。您可以创建自己的助手,并将其放置在 application/helpers 目录中。

【讨论】:

    【解决方案2】:

    Helper 是为简化某些任务而提供的功能,例如验证或输入清理。您不应该删除它们,实际上应该尽可能多地使用它们,因为它们通常都做得很好并且经过了很好的测试。

    【讨论】:

      【解决方案3】:

      您不应该删除库/框架的文件。它们被设计为“作为一个整体”工作。在用户方面,将库/框架切成碎片的理由非常少。因此,您可能一无所获,但冒着破坏某些东西的风险。

      但是,“Helpers”是一个通用概念,它提供了一些简单的功能,其他组件可以使用(或不使用),而无需直接实现它。查看 codeigneter 手册,了解此帮助器适用于哪些部分的一些提示。

      【讨论】:

        【解决方案4】:

        您当然不应该从框架的核心/系统文件中删除任何帮助程序,因为该功能通常会在其他库中使用并可能导致各种问题。

        您不必在应用中使用它们,它们不会引起明显的性能问题。

        一开始它们可能看起来是多余的,但例如 CI 就非常有用(正如您所料)。

        您可能会争辩说,表单助手或 HTML 助手只会产生开销,您可以自己键入适当的 HTML,但想想:

           <form action="<?php echo site_url('controller/method'); ?>" method="post">
        
            // or using the form helper
        
            <?php echo form_open('controller/method');
        

        保存所有这些额外的字符,以及拼写错误、错误输入等的风险。

        Phil Sturgeon 对助手的使用以及他们为什么会摇滚,这可能是 found here 进行了咆哮,提出了几个好处。

        编辑

        为了证明我的观点!

        $attributes = array('class' => 'email', 'id' => 'myform');
        $hidden = array('hidden_value'=>'1234', 'hidden_value_2' => 'foobar');
        
        echo form_open('email/send', $attributes, $hidden);
        

        【讨论】:

        • 表单示例并不适合。我更喜欢自己输入控制所有参数的 HTML 表单。此外,第一行(HTML 行)比第二行更具可读性和可理解性(您必须假设默认情况下方法是 POST)。另外,附在表格上的 ID 呢?
        • 好吧,您可以将第三个参数传递给它[参见编辑],但事后看来,我的示例并不完全是一个交易破坏者!希望你能明白为什么你可以使用它们。
        • 所以是的,它仍然涉及一些打字,不会成败你的应用程序,但它肯定有它的用途!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多