SplFileInfo::setInfoClass
(PHP 5 >= 5.1.2)
SplFileInfo::setInfoClass — Sets the class used with getFileInfo and getPathInfo
Description
public void SplFileInfo::setInfoClass
([ string
$class_name
] )Use this method to set a custom class which will be used when getFileInfo and getPathInfo are called. The class name passed to this method must be derived from SplFileInfo.
Parameters
-
class_name
-
The class name to use.
Return Values
No value is returned.
Examples
Example #1 SplFileInfo::setFileClass() example
<?php
// Define a class which extends SplFileInfo
class MyFoo extends SplFileInfo {}
$info = new SplFileInfo('foo');
// Set the class name to use
$info->setInfoClass('MyFoo');
var_dump($info->getFileInfo());
?>
The above example will output something similar to:
object(MyFoo)#2 (0) { }
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Другие базовые расширения
- Стандартная библиотека PHP (SPL)
- Обработка файлов
- Функция SplFileInfo::__construct() - Создает новый объект SplFileInfo
- Функция SplFileInfo::getATime() - Получает время последнего обращения к файлу
- Функция SplFileInfo::getBasename() - Получает базовое имя файла
- Функция SplFileInfo::getCTime() - Возвращает время последнего изменения индексного дескриптора файла
- Функция SplFileInfo::getExtension() - Получает расширение файла
- Функция SplFileInfo::getFileInfo() - Получает объект SplFileInfo для файла
- Функция SplFileInfo::getFilename() - Получает имя файла
- Функция SplFileInfo::getGroup() - Получает группу файла
- Функция SplFileInfo::getInode() - Получение индексного узла для файла
- Функция SplFileInfo::getLinkTarget() - Получение пути по ссылке
- Функция SplFileInfo::getMTime() - Получает время последнего изменения
- Функция SplFileInfo::getOwner() - Определяет владельца файла
- Функция SplFileInfo::getPath() - Получение пути без имени файла
- Функция SplFileInfo::getPathInfo() - Получение объекта SplFileInfo для заданного пути
- Функция SplFileInfo::getPathname() - Определение пути к файлу
- Функция SplFileInfo::getPerms() - Получает список разрешений для файла
- Функция SplFileInfo::getRealPath() - Определяет абсолютный путь к файлу
- Функция SplFileInfo::getSize() - Получает размер файла
- Функция SplFileInfo::getType() - Получает тип файла
- Функция SplFileInfo::isDir() - Сообщает, является ли файл каталогом
- Функция SplFileInfo::isExecutable() - Сообщает, является ли файл исполняемым
- Функция SplFileInfo::isFile() - Сообщает, ссылается ли объект на обычный файл
- Функция SplFileInfo::isLink() - Сообщает, является ли файл ссылкой
- Функция SplFileInfo::isReadable() - Сообщает, является ли файл доступным для чтения
- Функция SplFileInfo::isWritable() - Сообщает, является ли элемент доступным для записи
- Функция SplFileInfo::openFile() - Получает объект SplFileObject для файла
- SplFileInfo::setFileClass
- SplFileInfo::setInfoClass
- Функция SplFileInfo::__toString() - Возвращает путь к файлу в виде строки
Коментарии
Be careful when using this method, as the functionality isn't exactly the same as instantiating the extending class directly. This can really trip you up if you're using type hints or instanceof checks.
<?php
class CustomFileInfo extends SplFileInfo
{
public function getExtension()
{
$ext = strtolower(parent::getExtension());
return 'jpeg' === $ext ? 'jpg' : $ext;
}
}
$path = __DIR__ . '/foobar.jpeg';
$good = new CustomFileInfo($path);
echo "<pre>";
var_dump($good instanceof SplFileInfo);
var_dump($good instanceof CustomFileInfo);
$bad = new SplFileInfo($path);
$bad->setInfoClass('CustomFileInfo');
var_dump($bad instanceof SplFileInfo);
var_dump($bad instanceof CustomFileInfo);
echo "</pre>";
?>
Outputs:
bool(true)
bool(true)
bool(true)
bool(false)