简介
Fuel 能让你包装目录和档案在物件中。透过这样做, 它能让你在一个 OO 基础上存取及修改档案系统项目(档案及目录)。
接收自 File 类别(或档案区域)的物件是档案处理程序。Fuel 有两个核心档案处理程序:档案处理程序 以及 目录处理程序。 就像你所期望的,这些类别处理档案和目录。
Fuel 能让你包装目录和档案在物件中。透过这样做, 它能让你在一个 OO 基础上存取及修改档案系统项目(档案及目录)。
接收自 File 类别(或档案区域)的物件是档案处理程序。Fuel 有两个核心档案处理程序:档案处理程序 以及 目录处理程序。 就像你所期望的,这些类别处理档案和目录。
每个辅助类别带有一组方法, 能让你对包装在档案或目录中的物件执行操作。这里是一些使用 File::get 的範例:
// 首先我们会取得一个档案
$file = \File::get(DOCROOT.'/here_is_my/textfile.txt');
现在我们已经取得档案处理程序,我们可以使用它的方法来完成某事。
// 让我们重新命名它。
$file->rename('new_name');
// 取得档案的内容
$content = $file->read();
// 并且改回原来的名称
$file->rename('textfile');
正如你可以在上面的例子看到,重新命名文件时,你不需要重新取回该处理程序。 你可以一遍又遍地重複使用相同物件,直到你删除该档案或清除该变数。
档案处理程序处理与档案的基础互动。每个範例都假设 $handler 变数是取回的处理程序。想知道如何取得处理程序? 请看用法段落。
forge 方法回传一个新的 File_Handler_File 物件。
静态 | 是 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
| |||||||||||||||
回传 | 回传一个新的 File_Handler_File 物件。 | |||||||||||||||
範例 |
|
read 方法是 File::read 的捷径。
静态 | 否 | ||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
回传 | 回传 IO 或字串(档案内容) | ||||||
範例 |
|
rename 方法是 File::rename 的捷径。
静态 | 否 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
参数 |
| |||||||||
回传 | 布林,来自 rename() 的结果 | |||||||||
範例 |
|
move 方法是 File::move 的捷径。
静态 | 否 | ||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
回传 | 布林,来自 rename() 的结果 | ||||||
範例 |
|
copy 方法是 File::copy 的捷径。
静态 | 否 | ||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
回传 | 布林,来自 copy() 的结果 | ||||||
範例 |
|
update 方法是 File::update 的捷径。
静态 | 否 | ||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
回传 | true 在成功时 | ||||||
範例 |
|
delete 方法是 File::delete 的捷径。
静态 | 否 |
---|---|
回传 | 布林,来自 unlink() 的结果 |
範例 |
|
get_url 方法是 File::get_url 的捷径。
静态 | 否 |
---|---|
回传 | 公开 URL |
範例 |
|
get_permissions 方法是 File::get_permissions 的捷径。
静态 | 否 |
---|---|
回传 | 八进位制的档案权限 |
範例 |
|
get_time 方法是 File::get_time 的捷径。
静态 | 否 | ||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
回传 | 档案的建立或修改时间戳记 | ||||||
範例 |
|
get_size 方法是 File::get_size 的捷径。
静态 | 否 |
---|---|
回传 | 档案大小(位元组) |
範例 |
|
get_path 方法回传档案路径。
静态 | 否 |
---|---|
回传 | 档案路径 |
範例 |
|
目录处理程序处理与目录的基础互动。每个範例都假设 $handler 变数是取回的处理程序。想知道如何取得处理程序? 请看用法段落。
forge 方法回传一个新的 File_Handler_Directory 物件。
静态 | 是 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
| |||||||||||||||
回传 | 回传一个新的 File_Handler_File 物件。 | |||||||||||||||
範例 |
|
read 方法是 File::read_dir 的捷径。
静态 | 否 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
参数 |
| |||||||||
回传 | 回传目录内容在一个阵列中 | |||||||||
範例 |
|
rename 方法是 File::rename_dir 的捷径。
静态 | 否 | ||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
回传 | 布林,来自 rename() 的结果 | ||||||
範例 |
|
move 方法是 File::move 的捷径。
静态 | 否 | ||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
回传 | 布林,来自 rename() 的结果 | ||||||
範例 |
|
copy 方法是 File::copy_dir 的捷径。
静态 | 否 | ||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
回传 | 布林,来自 copy() 的结果 | ||||||
範例 |
|
delete 方法是 File::delete_dir 的捷径。
静态 | 否 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
参数 |
| |||||||||
回传 | true 在成功时 | |||||||||
範例 |
|
get_permissions 方法是 File::get_permissions 的捷径。
静态 | 否 |
---|---|
回传 | 八进位制的目录权限 |
範例 |
|
get_time 方法是 File::get_time 的捷径。
静态 | 否 | ||||||
---|---|---|---|---|---|---|---|
参数 |
| ||||||
回传 | 目录的建立或修改时间戳记 | ||||||
範例 |
|
正如前面所提到,Fuel 带有两个预定义的处理程序。一个用于目录以及一个用于档案。 透过撰写你自己的处理程序,你可以改变行为并且藉由档案类型添加相应功能。 例如处理 csv 文件时,你可能希望在读取时自动解析他们, 或可以从一个图像档案取回图像。
处理程序是扩充 File Handler 类别(\File_Handler_File)的类别。 这里是一个範例:
<?php
class File_Handler_XML extends \File_Handler_File
{
/**
* Read 方法指定此处理程序会如何处理档案内容
*/
public function read()
{
return simplexml_load_file($this->path);
}
}
/* End of file xml.php */
注意 $this->path。这将一直保持路径为目前档案,即使在移动或改名时。
File 处理程序可以透过在 file 配置中添加来指派。 透过添加它们到基础配置,所有来自特定副档名的档案将被所需的处理程序取回。 你也可以在一个区域基础上, 透过添加它们到你想使用的区域配置中来指派处理程序。
// 在 app/config/file.php
'base_config' => array(
'file_handlers' => array(
'csv' => 'File_Handler_Csv',
),
),
'areas' => array(
'my_area' => array(
'file_handlers' => array(
'xml' => 'File_Handler_XML',
),
),
),