區域
简介
档案區域被用來影響档案系统行为。透過設定基础限制, 你可以設定允許在这些限制內靈活運用的界限, 而不須擔心档案及目录的未認證的存取。
配置
預設情況下,档案區域穿過所有目录無限制存取。有兩種方式來設定这些配置值。 最快的方式是傳遞一个陣列進入 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)
{
// 操作失敗
}