Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 框架助手,他们是干什么的?_Php_Codeigniter_Frameworks_Helper - Fatal编程技术网

Php 框架助手,他们是干什么的?

Php 框架助手,他们是干什么的?,php,codeigniter,frameworks,helper,Php,Codeigniter,Frameworks,Helper,我开始研究一些框架。特别是密码点火器让我着迷。但通过搜索文件夹,我发现包含21个PHP文件的system/helpers。在这些文件中,我们发现了数千个与html、xml、字符串、数组、数字、表单相关的函数。。。等等 这应该很简单,但我真的不理解这些helper文件的含义。我的意思是:一般认为什么是帮手?它们是必需的吗?我可以在没有风险的情况下删除它们吗?提供了帮助功能,可以简化一些任务,如验证或输入清理。您不应该删除它们,事实上,应该尽可能多地使用它们,因为它们通常都做得很好,而且经过了很好的

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


这应该很简单,但我真的不理解这些
helper
文件的含义。我的意思是:一般认为什么是帮手?它们是必需的吗?我可以在没有风险的情况下删除它们吗?

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

您永远不应该删除库/框架的文件。它们被设计为“作为一个整体”工作。在用户方面,将一个库/框架切分为若干部分是有意义的,但原因很少。所以你可能什么都赢不了,但有可能你会打破某些东西

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

许多框架中的“帮助程序”(包括CodeIgniter)指的是一组函数,通过将多个进程分组到单个函数中,使简单的常规任务更容易完成

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

它提供了以下解释:

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

在文档中还可以找到助手函数及其作用的列表


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

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

你不必在应用程序中使用它们,它们也不会导致明显的性能问题

一开始它们可能看起来有些多余,但例如CI是非常有用的(正如您可能期望的那样)

您可能会认为表单帮助器或HTML帮助器只会产生开销,您可以自己键入适当的HTML,但请思考:

   <form action="<?php echo site_url('controller/method'); ?>" method="post">

    // or using the form helper

    <?php echo form_open('controller/method');

删除它们的唯一潜在好处是节省几kb的磁盘空间。如果它们没有被使用,那么它们就没有运行时开销了。我讨厌听起来像个混蛋。。但阅读肯定能回答这个问题。。。。表单示例并不真正适合。我更喜欢自己键入控制所有参数的HTML表单。此外,第一行(HTML一行)比第二行(默认情况下,您必须假设方法为POST)更可读、更易懂。还有一个附加到表单上的ID呢?您可以给它传递第三个参数[参见编辑],但事后来看,我的示例并不完全是一个交易破坏者!希望你能明白为什么你可能会使用它们。所以,是的,它仍然需要一些输入,不会影响你的应用程序,但它肯定有它的用途!
$attributes = array('class' => 'email', 'id' => 'myform');
$hidden = array('hidden_value'=>'1234', 'hidden_value_2' => 'foobar');

echo form_open('email/send', $attributes, $hidden);