区域
简介
档案区域被用来影响档案系统行为。透过设定基础限制, 你可以设定允许在这些限制内灵活运用的界限, 而不须担心档案及目录的未认证的存取。
配置
预设情况下,档案区域穿过所有目录无限制存取。有两种方式来设定这些配置值。 最快的方式是传递一个阵列进入 File::forge() 方法。
$config = array(
'basedir' => DOCROOT.'uploads',
'use_locks' => true,
);
$area = \File::forge($config);
一个更集中的方式是透过在你的 File 配置档案中定义一个(或更多)区域。要做到这一点, 複製 core/config/file.php 到 app/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)
{
// 操作失败
}