没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\helpers\BaseFileHelper

继承yii\helpers\BaseFileHelper
子类yii\helpers\FileHelper
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/helpers/BaseFileHelper.php

BaseFileHelper 为 yii\helpers\FileHelper 提供了具体的实现方法。

不要使用 BaseFileHelper 类。使用 yii\helpers\FileHelper 类来代替。

公共属性

隐藏继承的属性

属性类型描述被定义在
$mimeAliasesFile string 包含 MIME 别名的 PHP 文件的路径(或别名)。 yii\helpers\BaseFileHelper
$mimeMagicFile string 包含 MIME 类型信息的 PHP 文件的路径(或别名)。 yii\helpers\BaseFileHelper

公共方法

隐藏继承的方法

方法描述被定义在
copyDirectory() 将整个目录复制为另一个目录。 文件和子目录也将被复制。 yii\helpers\BaseFileHelper
createDirectory() 创建一个新目录。 yii\helpers\BaseFileHelper
filterPath() 检查给定的文件路径是否满足过滤选项。 yii\helpers\BaseFileHelper
findDirectories() 返回在指定目录和子目录下找到的目录。 yii\helpers\BaseFileHelper
findFiles() 返回在指定目录和子目录下找到的文件。 yii\helpers\BaseFileHelper
getExtensionsByMimeType() 根据给定 MIME 类型确定扩展。 该方法将使用扩展名和 MIME 类型之间的本地映射。 yii\helpers\BaseFileHelper
getMimeType() 确定指定文件的 MIME 类型。 此方法首先尝试基于 finfo_open 确定 MIME 类型。 如果 fileinfo 扩展未安装, 当 $checkExtension 设置 true 的时候它将基于 getMimeTypeByExtension() yii\helpers\BaseFileHelper
getMimeTypeByExtension() 根据指定文件的扩展名确定 MIME 类型。 该方法将使用扩展名和 MIME 类型之间的本地映射。 yii\helpers\BaseFileHelper
localize() 返回指定文件的本地化版本。 yii\helpers\BaseFileHelper
normalizePath() 规范化文件/目录路径。 yii\helpers\BaseFileHelper
removeDirectory() 递归地删除一个目录(及其所有内容)。 yii\helpers\BaseFileHelper
unlink() 以跨平台的方式删除文件或符号链接 yii\helpers\BaseFileHelper

受保护的方法

隐藏继承的方法

方法描述被定义在
loadMimeAliases() 从指定文件加载 MIME 别名。 yii\helpers\BaseFileHelper
loadMimeTypes() 从指定的文件加载 MIME 类型。 yii\helpers\BaseFileHelper
normalizeOptions() yii\helpers\BaseFileHelper

常量

隐藏继承的常量

常量描述被定义在
PATTERN_CASE_INSENSITIVE 32 yii\helpers\BaseFileHelper
PATTERN_ENDSWITH 4 yii\helpers\BaseFileHelper
PATTERN_MUSTBEDIR 8 yii\helpers\BaseFileHelper
PATTERN_NEGATIVE 16 yii\helpers\BaseFileHelper
PATTERN_NODIR 1 yii\helpers\BaseFileHelper

属性详情

$mimeAliasesFile 公共 静态 属性 (自版本 2.0.14 可用)

包含 MIME 别名的 PHP 文件的路径(或别名)。

public static string $mimeAliasesFile '@yii/helpers/mimeAliases.php'
$mimeMagicFile 公共 静态 属性

包含 MIME 类型信息的 PHP 文件的路径(或别名)。

public static string $mimeMagicFile '@yii/helpers/mimeTypes.php'

方法详情

copyDirectory() 公共 静态 方法

将整个目录复制为另一个目录。 文件和子目录也将被复制。

public static void copyDirectory($src, $dst, $options = [])
$src string

源目录

$dst string

目标目录

$options array

目录复制选项。有效的选项是:

  • dirMode:整型,为新复制的目录设置的权限。默认为 0775。
  • fileMode:整型,为新复制的文件设置的权限。默认设置为当前环境设置。
  • filter:回调方法,为每个目录或文件调用的PHP回调。 回调的签名应该是:function ($path)$path 表示要过滤的完整路径。 回调可以返回以下值:

    • true:目录或文件将被复制("only" 和 "except" 选项将被忽略)
    • false:目录或文件不会被复制("only" 和 "except" 选项将被忽略)
    • null:"only" 和 "except" 选项将决定是否复制目录或文件
  • only:数组,如果文件路径想要被复制,它们应该匹配的模式列表。 如果路径末尾包含模式字符串,则路径与模式匹配。 比如说,'.php' 匹配所有以 '.php' 结尾的文件路径。 注意,'/' 模式中的字符在路径中同时匹配 '/' 和 '\'。 如果文件路径与两者中的模式匹配 "only" 和 "except",它不会被复制。

  • except:数组,如果文件或目录希望不被复制,它们应该匹配的模式的列表。 如果路径末尾包含模式字符串,则路径与模式匹配。 模式以 '/' 仅适用于目录路径,以及不以 '/' 结尾的模式适用于文件路径。 比如,'/a/b' 匹配以 '/a/b' 结尾的所有文件路径; 以及 '.svn/' 匹配以 '.svn' 结尾的目录路径。 注意,模式中的 '/' 字符匹配路径中的 '/' 和 '\' 匹配。
  • caseSensitive:布尔类型,"only" 或 "except" 模式指定是否应该区分大小写。默认设置 true。
  • recursive:布尔类型,子目录下的文件是否也应该被复制。默认值为 true。
  • beforeCopy:回调类型,在复制每个子目录或文件之前调用的 PHP 回调。 如果回调返回 false,子目录或文件的复制操作将被取消。 回调的签名应该是:function ($from, $to)$from 要复制的子目录或文件, 而 $to 是复制目标。
  • afterCopy:回调类型,成功复制每个子目录或文件后调用的 PHP 回调。 回调的签名应该是:function ($from, $to)$from 要复制的子目录或文件, 而 $to 是复制目标。
  • copyEmptyDirectories:布尔类型,是否复制空目录。设置为 false 以避免创建不包含文件的目录。 这将影响最初不包含文件的目录和包含文件的目录 以及目标目的地不包含文件的目录,因为文件是通过 onlyexcept 筛选的。 默认设置为 true。此选项从版本 2.0.12 开始可用。2.0.12 之前版本空目录依然可以复制。
throws yii\base\InvalidArgumentException

如果无法打开目录抛出异常

createDirectory() 公共 静态 方法

创建一个新目录。

这个方法类似于 PHP mkdir() 函数, 只不过它使用 chmod() 来设置创建目录的权限, 以避免 umask 设置的影响。

public static boolean createDirectory($path, $mode 0775, $recursive true)
$path string

要创建的目录的路径。

$mode integer

为创建的目录设置的权限。

$recursive boolean

如果父目录不存在是否需要创建它们。

return boolean

Whether 目录创建成功

throws yii\base\Exception

如果无法创建目录(例如 php 错误导致并行修改)

filterPath() 公共 静态 方法

检查给定的文件路径是否满足过滤选项。

public static boolean filterPath($path, $options)
$path string

要检查的文件或目录的路径

$options array

过滤选项。 有关支持的选项的解释请参考 findFiles()

return boolean

文件或目录是否满足筛选选项。

findDirectories() 公共 静态 方法 (自版本 2.0.14 可用)

返回在指定目录和子目录下找到的目录。

public static array findDirectories($dir, $options = [])
$dir string

将在其中查找文件的目录。

$options array

目录搜索选项。有效选项是:

  • filter:回调,为每个目录或文件调用的 PHP 回调。 回调的签名应该是:function ($path)$path 表示要过滤的完整路径。 回调可以返回以下值之一:

    • true:目录将被返回
    • false:该目录将不会被返回
  • recursive:布尔型,是否还应该查找子目录下的文件。默认 true

return array

目录下找到的目录,没有特别的顺序。排序取决于所使用的文件系统。

throws yii\base\InvalidArgumentException

如果目录无效抛出异常。

findFiles() 公共 静态 方法

返回在指定目录和子目录下找到的文件。

public static array findFiles($dir, $options = [])
$dir string

将在其中查找文件的目录。

$options array

目录搜索选项。有效选项是:

  • filter:回调类型,为每个目录或文件调用的 PHP 回调。 回调的签名应该是:function ($path)$path 指的是要过滤的完整路径。 回调可以返回以下值之一:

    • true:将返回的文件或目录(onlyexcept 选项将被忽略)
    • false:不会返回目录或文件(onlyexcept 选项将被忽略)
    • nullonlyexcept 选项将决定文件或目录是否被返回
  • except:数组,从结果匹配文件或目录路径中排除的模式列表。 以斜杠 ('/') 结尾的模式仅适用于目录路径, 模式不以 '/' 结尾仅适用于文件路径。 例如,'/a/b' 匹配所有以 '/a/b' 结尾的文件路径;以及 .svn/ 匹配以 .svn 结尾的目录路径。 如果模式不包含斜杠(/),则将其视为 shell glob 模式 并检查相对于 $dir 的路径名的匹配。 否则,该模式被视为适合由 fnmatch(3) 使用的 shell glob 使用 FNM_PATHNAME 标志:模式中的通配符与路径名中的 / 不匹配。 例如,views/*.php 匹配 views/index.php 但不匹配 views/controller/index.php。 前导斜杠与路径名的开头匹配。例如,/*.php 匹配 index.php 但不匹配 views/start/index.php。 一个可选的前缀 ! 它否定了模式;之前模式排除的任何匹配文件将再次包含在内。 如果否定模式匹配,则将覆盖较低优先级模式源。在第一个 ! 前放一个反斜杠 (\) 对于以文字 ! 开头的模式,例如,\!important!.txt。 注意,模式中的 '/' 字符与路径中的 '/' 和 '\' 匹配。

  • only:数组,文件路径在返回时应匹配的模式列表。 目录路径未经过检查。使用与 except 选项中相同的模式匹配规则。 如果文件路径与 onlyexcept,中的模式匹配,则不会返回。
  • caseSensitive:布尔型,在 onlyexcept 指定的模式下是否应区分大小写。默认为 true
  • recursive:布尔型,是否需要查找子目录下的文件。默认为 true
return array

在目录下找到的数组文件,没有特别的顺序。排序取决于使用的文件系统。

throws yii\base\InvalidArgumentException

如果目录无效则抛出异常。

getExtensionsByMimeType() 公共 静态 方法

根据给定 MIME 类型确定扩展。 该方法将使用扩展名和 MIME 类型之间的本地映射。

public static array getExtensionsByMimeType($mimeType, $magicFile null)
$mimeType string

文件的 MIME 类型。

$magicFile string

包含所有可用 MIME 类型信息的文件的路径(或别名)。 如果没有设置,将使用 $mimeMagicFile 指定的文件。

return array

对应于指定 MIME 类型的扩展

getMimeType() 公共 静态 方法

确定指定文件的 MIME 类型。 此方法首先尝试基于 finfo_open 确定 MIME 类型。 如果 fileinfo 扩展未安装, 当 $checkExtension 设置 true 的时候它将基于 getMimeTypeByExtension()

public static string getMimeType($file, $magicFile null, $checkExtension true)
$file string

文件名称。

$magicFile string

可选的魔术数据库文件名(或别名),通常类似 /path/to/magic.mime。 这将作为第二个参数传递给 finfo_open()fileinfo 扩展被安装时。如果 MIME 类型是基于 getMimeTypeByExtension() 并且为 null,它将通过 $mimeMagicFile 使用指定的文件。

$checkExtension boolean

finfo_open() 无法确定 MIME 类型的情况下, 是否使用文件扩展名来确定 MIME 类型。

return string

MIME 类型(e.g. text/plain)。如果无法确定MIME类型,则返回 Null。

throws yii\base\InvalidConfigException

fileinfo PHP 扩展没有被安装并且 $checkExtension 设置 false

getMimeTypeByExtension() 公共 静态 方法

根据指定文件的扩展名确定 MIME 类型。 该方法将使用扩展名和 MIME 类型之间的本地映射。

public static string|null getMimeTypeByExtension($file, $magicFile null)
$file string

文件的名字。

$magicFile string

包含所有可用 MIME 类型信息的文件的路径(或别名)。 如果没有设置,将使用 $mimeMagicFile 指定的文件。

return string|null

MIME 类型。如果无法确定 MIME 类型,则返回 Null。

loadMimeAliases() 受保护 静态 方法 (自版本 2.0.14 可用)

从指定文件加载 MIME 别名。

protected static array loadMimeAliases($aliasesFile)
$aliasesFile string

包含 MIME 类型别名的文件的路径(或别名)。 如果没有设置,将使用 $mimeAliasesFile 指定的文件。

return array

从文件扩展名到 MIME 类型的映射

loadMimeTypes() 受保护 静态 方法

从指定的文件加载 MIME 类型。

protected static array loadMimeTypes($magicFile)
$magicFile string

包含所有可用 MIME 类型信息的文件的路径(或别名)。 如果没有设置,将使用 $mimeMagicFile 指定的文件。

return array

从文件扩展名到 MIME 类型的映射

localize() 公共 静态 方法

返回指定文件的本地化版本。

基于指定的语言代码进行搜索。 特别是,将在子目录下查找同名的文件 它的名字与语言代码一样。比如说,找到某个文件 "path/to/view.php" 包含语言代码 "zh-CN",本地化文件将在 "path/to/zh-CN/view.php" 这里被查找。 如果这个文件没有被找到,它将尝试使用 "zh" 下的语言代码进行备用, 例如 "path/to/zh/view.php"。如果找不到,将返回原始文件。

如果目标语言代码和源语言代码相同, 原始文件将被返回。

public static string localize($file, $language null, $sourceLanguage null)
$file string

原始文件

$language string

文件应该本地化到的目标语言。 如果没有去设置,将使用 yii\base\Application::$language 的值。

$sourceLanguage string

原始文件所包含的语言。 如果没有去设置,将使用 yii\base\Application::$sourceLanguage 的值。

return string

匹配的本地化文件,如果本地文件未找到可以使用原始文件。 如果目标语言代码和源语言代码相同,将返回原始文件。

normalizeOptions() 受保护 静态 方法 (自版本 2.0.12 可用)

protected static array normalizeOptions(array $options)
$options array

原始选项

return array

标准化选项

normalizePath() 公共 静态 方法

规范化文件/目录路径。

规范化做了以下工作:

  • 将所有目录分隔符转换为 DIRECTORY_SEPARATOR(e.g. "\a/b\c" becomes "/a/b/c")
  • 删除末尾的目录分隔符(e.g. "/a/b/c/" becomes "/a/b/c")
  • 将多个连续斜杠转换为单个斜杠(e.g. "/a///b/c" becomes "/a/b/c")
  • 移除 ".." 和 "." 基于它们的定义(e.g. "/a/./b/../c" becomes "/a/c")
public static string normalizePath($path, $ds DIRECTORY_SEPARATOR)
$path string

要标准化的文件/目录路径

$ds string

要在规范化结果中使用的目录分隔符。默认是 DIRECTORY_SEPARATOR

return string

规范化文件/目录路径

removeDirectory() 公共 静态 方法

递归地删除一个目录(及其所有内容)。

public static void removeDirectory($dir, $options = [])
$dir string

递归删除的目录。

$options array

目录删除选项。有效的选项是:

  • traverseSymlinks:布尔型,是否遍历符号链接的目录。 默认设置 false,这意味着符号链接目录的内容不会被删除。 默认情况下只有符号链接会被删除。
throws yii\base\ErrorException

失败时抛出的异常

unlink() 公共 静态 方法 (自版本 2.0.14 可用)

以跨平台的方式删除文件或符号链接

public static boolean unlink($path)
$path string