SplFileInfo::setInfoClass

(PHP 5 >= 5.1.2)

SplFileInfo::setInfoClassSets 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) { } 

See Also

Коментарии

Автор:
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)
2019-11-05 17:21:59
http://php5.kiev.ua/manual/ru/splfileinfo.setinfoclass.html

    Поддержать сайт на родительском проекте КГБ