开发学院

您的位置:首页>教程>正文

教程正文

CodeIgniter教程: 基本概念(二)

助手

  顾名思义,它将帮助您构建您的系统。它被分成小的功能来服务不同的功能。CodeIgniter中有许多助手,如下表所示。我们也可以建立自己的助手。

  助手通常存储在您的system/helpers或 application/helpers目录中,自定义助手存储在 application/helpers目录中,系统助手存储在system/helpers目录中。CodeIgniter将首先在application/helpers目录中查找。如果目录不存在或者指定的帮助程序不存在,CodeIgniter将在您的system/helpers目录中查找。每个助手,无论是自定义还是系统助手,都必须在使用之前加载。

  下面给出了最常用的助手。

  1.Array Helper:包含有助于使用数组的函数。

  2.CAPTCHA Helper:包含帮助创建验证码图像的函数。

  3.Cookie Helper:包含帮助使用Cookie的函数。

  4.Date Helper:包含帮助您处理日期的函数。

  5.Directory Helper:包含帮助处理目录的函数。

  6.Download Helper:允许您将数据下载到桌面。

  7.Email Helper:为使用电子邮件提供了一些辅助功能。

  8.File Helper:包含帮助处理文件的功能。

  9.Form Helper:包含帮助处理表单的函数。

  10.HTML Helper:包含帮助使用超文本标记语言的功能。

  11.Inflector Helper:包含允许您将单词更改为复数、单数、骆驼大小写等的函数。

  12.Language Helper:包含帮助处理语言文件的函数。

  13.Number Helper:包含帮助您处理数字数据的函数。

  14.Path Helper:包含允许您在服务器上使用文件路径的函数.

  15.Security Helper:包含与安全相关的功能。

  16.Smiley Helper:含允许您管理表情符号的功能。

  17.String Helper:包含帮助处理字符串的函数。

  18.Text Helper:包含帮助处理文本的功能。

  19.Typography Helper:可以帮助您以语义相关的方式格式化文本。

  20.URL Helper:包含帮助处理网址的功能。

  21.XML Helper:包含有助于处理XML数据的函数。

加载助手

  下面的代码用于加载助手:

$this->load->helper('name');

  其中name是助手的名称。例如,如果您想加载url助手,那么可以输入:

$this->load->helper('url');

路由

  CodeIgniter拥有友好的URI路由系统,因此您可以轻松地重新路由网址。通常,在一个URL字符串和它对应的控制器类/方法之间存在一对一的关系。URI中的片段通常遵循这种模式

your-domain.com/class/method/id/

  第一段表示应该调用的控制器类。

  第二段表示应该调用的类函数或方法。

  第三个,以及任何附加的段,表示将被传递给控制器的标识和任何变量。

  在某些情况下,您可能需要更改此默认路由机制。CodeIgniter提供了一种工具,您可以通过它来设置自己的路由规则。

自定义路由规则

  有一个特殊的文件可以处理所有这些。该文件位于application/config/routes.php中。您会发现一个名为$route的数组,您可以在其中自定义路由规则。$route数组中的键将决定路由什么,值将决定路由到哪里。CodeIgniter中有三条保留路由。

  1.$route['default_controller']:设置默认路由,就是输入网址最初要加载的控制和对应方法。

  2.$route['404_override']:如果找不到请求的控制器,此路由指示应该加载哪个控制器类。它将覆盖默认的404错误页面。它不会影响show_404()函数,该函数将加载application/views/errors/error_404.php文件。

  3.$route['translate_uri_dashes']:该选项使您能够在控制器和方法URI段中用下划线自动替换破折号(“-”),从而在需要时为您节省额外的路由条目。

  路由可以通过通配符或使用正则表达式来定制,但请记住,这些定制的路由规则必须在保留规则之后。

通配符

  我们可以使用两个通配符,如下所述

  (:num) :它将匹配只包含数字的段.

  (:any) :它将匹配包含任何字符的段。

例子

$route['product/:num']='catalog/product_lookup';

  在上面的例子中,如果在网址的第一段中找到字面词“product”,而在第二段中找到一个数字,则匹配“catalog”类和“product_lookup”方法。

正则表达式

  像通配符一样,我们也可以在$route数组键部分使用正则表达式。如果任何URI与正则表达式匹配,那么它将被路由到值部分集合到$route数组中。

例子

$route['products/([a-z]+)/(\d+)']='$1/id_$2';

  在上面的例子中,类似于products/shoes/123的URI将改为调用“shoes”控制器类和“id_123”方法。