适配器是一种特殊的库,它有一个父类和任意数量的子类。子类可以访问其父类元素,但不能访问其兄弟类的元素。在你的控制器中,适配器为类库提供了一种优雅的语法,因此类库会就此获益甚至会需要分解成离散的类。

适配器的源文件存放在system/libraries 目录下, 命名一个和类名字相同的文件夹,文件夹下存放该类。同时在该文件夹中,有一个子文件夹叫做 drivers在其中包含了所有的子类。

要使用一个适配器,你需要在一个控制器里用如下的初始化函数初始它:

$this->load->driver(‘class name’);

这里的class name 是你想加载的适配器的名字。 比如说你想加载一个叫做”Some Parent”的适配器,你可以这样:

$this->load->driver(‘some_parent’);

适配器类中的方法可以用如下的方式来调用:

$this->some_parent->some_method();

这些作为子类的适配器能直接通过父类调用,而不用初始化。

$this->some_parent->child_one->some_method();
$this->some_parent->child_two->another_method();请查看缓存适配器的文件缓存使用方法

创建自己的适配器

适配器目录和文件结构布局的例子:

  • /application/libraries/Driver_name
    • Driver_name.php
    • drivers
      • Driver_name_subclass_1.php
      • Driver_name_subclass_2.php
      • Driver_name_subclass_3.php

注意: 为了在大小写敏感的文件系统上维持兼容性,这个 Driver_name 目录必须使用 ucfirst() 函数处理。

 

所有的类库文件存放在system/libraries 文件夹。大多数情况下你需要预先在controller中初始化后才能使用它们:

$this->load->library(‘class name’);

class name是你想要使用的类名。例如,要载入“表单验证类”,你可以这样做:

$this->load->library(‘form_validation’);

一旦类库被载入,你就可以按照用户手册中的方法来使用它们。

此外,多个类库可以通过传递包含类库的数组一次加载。

$this->load->library(array(’email’, ‘table’));

Read More →

辅助函数,顾名思义,是帮助我们完成特定任务的函数。每个辅助函数文件仅仅是一些函数的集合。例如,URL Helpers 可以帮助我们创建链接,Form Helpers 可以帮助我们创建表单,Text Helpers 提供一系列的格式化输出方式,Cookie Helpers 能帮助我们设置和读取COOKIE, File Helpers 能帮助我们处理文件,等等。

跟其他部分不同的是,辅助函数不是用类的方式来实现的。它们仅仅是一些简单的过程处理函数。 每个辅助函数处理一个特定的任务,并且不必依靠其他函数。

CodeIgniter 默认是没有载入辅助函数文件的,所以如果你想用辅助函数,就必须先载入它。 一旦被载入,辅助函数将全局可用(globally available),你可以在 controller 和 views 中使用它们。

辅助函数文件一般保存在 system/helpersapplication/helpers 文件夹中。CodeIgniter 将会先在 application/helpers 寻找对应的辅助函数文件, 如果目录不存在或者目录下没有对应的辅助函数文件,CI 才会载入 system/helpers 下的辅助函数文件。

Read More →