/** * @test * @dataProvider existsProvider */ public function exists2($path, $result) { $info = new \SplFileInfo($path); /** @var \Kumatch\Fs\FileInfoExtra\FileInfoExtra $file */ $file = $info->getFileInfo('\\Kumatch\\Fs\\FileInfoExtra\\FileInfoExtra'); $this->assertEquals($result, $file->exists()); }
/** * Constructor * * @throws \BLW\Type\InvalidArgumentException If $File is not a string / SplFileInfo. * * @param string|\SplFileInfo $File * Path of file. * @param integer $flags * Creation flags. */ public function __construct($File, $flags = IWrapper::WRAPPER_FLAGS) { // File is and instanceof SplFileInfo if ($File instanceof SplFileInfo) { // Clone object $this->_Component = $File->getFileInfo(); // Save Path $this->_FileName = $this->_Component->getPathname(); // File is a string (This includes IFile) } elseif (is_string($File) ?: is_callable(array($File, '__toString'))) { // Create component $this->_Component = new SplFileInfo(strval($File)); // Save Path $this->_FileName = $this->_Component->getPathname(); // File is invalid } else { throw new InvalidArgumentException(0); } }
public function testDecoratedMethods() { $decorated = $this->getMockBuilder('hanneskod\\classtools\\Tests\\MockSplFileInfo')->setConstructorArgs([''])->getMock(); $decorated->expects($this->once())->method('getRelativePath'); $decorated->expects($this->once())->method('getRelativePathname'); $decorated->expects($this->once())->method('getContents'); $decorated->expects($this->once())->method('getATime'); $decorated->expects($this->once())->method('getBasename'); $decorated->expects($this->once())->method('getCTime'); $decorated->expects($this->once())->method('getExtension'); $decorated->expects($this->once())->method('getFileInfo'); $decorated->expects($this->once())->method('getFilename'); $decorated->expects($this->once())->method('getGroup'); $decorated->expects($this->once())->method('getInode'); $decorated->expects($this->once())->method('getLinkTarget'); $decorated->expects($this->once())->method('getMTime'); $decorated->expects($this->once())->method('getOwner'); $decorated->expects($this->once())->method('getPath'); $decorated->expects($this->once())->method('getPathInfo'); $decorated->expects($this->once())->method('getPathname'); $decorated->expects($this->once())->method('getPerms'); $decorated->expects($this->once())->method('getRealPath'); $decorated->expects($this->once())->method('getSize'); $decorated->expects($this->once())->method('getType'); $decorated->expects($this->once())->method('isDir'); $decorated->expects($this->once())->method('isExecutable'); $decorated->expects($this->once())->method('isFile'); $decorated->expects($this->once())->method('isLink'); $decorated->expects($this->once())->method('isReadable'); $decorated->expects($this->once())->method('isWritable'); $decorated->expects($this->once())->method('openFile'); $decorated->expects($this->once())->method('setFileClass'); $decorated->expects($this->once())->method('setInfoClass'); $decorated->expects($this->once())->method('__toString')->will($this->returnValue('')); $fileInfo = new SplFileInfo($decorated); $fileInfo->getRelativePath(); $fileInfo->getRelativePathname(); $fileInfo->getContents(); $fileInfo->getATime(); $fileInfo->getBasename(); $fileInfo->getCTime(); $fileInfo->getExtension(); $fileInfo->getFileInfo(); $fileInfo->getFilename(); $fileInfo->getGroup(); $fileInfo->getInode(); $fileInfo->getLinkTarget(); $fileInfo->getMTime(); $fileInfo->getOwner(); $fileInfo->getPath(); $fileInfo->getPathInfo(); $fileInfo->getPathname(); $fileInfo->getPerms(); $fileInfo->getRealPath(); $fileInfo->getSize(); $fileInfo->getType(); $fileInfo->isDir(); $fileInfo->isExecutable(); $fileInfo->isFile(); $fileInfo->isLink(); $fileInfo->isReadable(); $fileInfo->isWritable(); $fileInfo->openFile(); $fileInfo->setFileClass(); $fileInfo->setInfoClass(); (string) $fileInfo; }
<?php class MyInfoObject extends SplFileInfo { } $info = new SplFileInfo(__FILE__); $info->setInfoClass('MyInfoObject'); echo get_class($info->getFileInfo()), "\n"; echo get_class($info->getPathInfo()), "\n"; $info->setInfoClass('SplFileInfo'); echo get_class($info->getFileInfo()), "\n"; echo get_class($info->getPathInfo()), "\n"; try { $info->setInfoClass('stdClass'); } catch (UnexpectedValueException $e) { echo $e->getMessage(), "\n"; }
<?php $file = __FILE__; $s = new SplFileObject($file); var_dump($fi = $s->getFileInfo(), (string) $fi); $d = new SplFileInfo(__DIR__); echo "\n"; var_dump($fi = $d->getFileInfo(), (string) $fi); $d = new SplFileInfo(__DIR__ . "/"); echo "\n"; var_dump($fi = $d->getFileInfo(), (string) $fi);
<?php class test extends SplFileInfo { public function example() { return "From class test"; } } $info = new SplFileInfo(__FILE__); $info->setInfoClass('test'); var_dump($info->getFileInfo()->example()); var_dump($info->getPathInfo()->example()); try { $info->setInfoClass('stdclass'); } catch (UnexpectedValueException $e) { echo $e->getMessage(), PHP_EOL; }