当前位置: 首页 > 文档资料 > FuelPHP 中文文档 >

File 進階 - 类別

优质
小牛编辑
119浏览
2023-12-01

简介

除了基本的 File 类别的静态用法,也有较为複杂的选项可用。 首先是区域,基本上它是不能在外部动作的基础路径, 并有一些配置选项。当在区域使用 File 类别的方法, 它们将回传包装目录&档案的物件。

区域

简介

档案区域被用来影响档案系统行为。透过设定基础限制, 你可以设定允许在这些限制内灵活运用的界限, 而不须担心档案及目录的未认证的存取。

配置

预设情况下,档案区域穿过所有目录无限制存取。有两种方式来设定这些配置值。 最快的方式是传递一个阵列进入 File::forge() 方法。

$config = array(
	'basedir'		=> DOCROOT.'uploads',
	'use_locks'		=> true,
);

$area = \File::forge($config);

一个更集中的方式是透过在你的 File 配置档案中定义一个(或更多)区域。要做到这一点, 複製 core/config/file.phpapp/config/file.php(或建立新的) 并且在 'areas' 阵列中定义你的区域。现在你可以透过提供识别符字串到 File::forge() 方法来取得区域。

// 在 app/config/file.php 里面
'areas' => array(
	'my_area' => array(
		'basedir'		=> DOCROOT.'uploads',
		'use_locks'		=> true,
	),
),

// 现在取得区域

$area = \File::instance('my_area');
		

用法

有两种方式在 File 类别中使用区域。
首先是在一个静态情境下,提供一个 File_Area 实例或识别符到你正在呼叫的函式。

// 读取目录的内容
try
{
	$dir = File::read_dir('somedir', 0, null, 'my_area');
}
catch(\FileAccessException $e)
{
	// 操作失败
}

第二是直接从区域本身呼叫函式。

// 取得区域
$area = File::instance('my_area');

try
{
	$dir = $area->read_dir('somedir', 0, null);
}
catch(\FileAccessException $e)
{
	// 操作失败
}