适配器是一种特殊的库,它有一个父类和任意数量的子类。子类可以访问其父类元素,但不能访问其兄弟类的元素。在你的控制器中,适配器为类库提供了一种优雅的语法,因此类库会就此获益甚至会需要分解成离散的类。
适配器的源文件存放在system/libraries 目录下, 命名一个和类名字相同的文件夹,文件夹下存放该类。同时在该文件夹中,有一个子文件夹叫做 drivers在其中包含了所有的子类。
如自带的Cache文件夹下:
要使用一个适配器,你需要在一个控制器里用如下的初始化函数初始它:
$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() 函数处理。