Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
402 lars 1
<?php
2
 
3
/**
4
 * This file is part of the Nette Framework (https://nette.org)
5
 * Copyright (c) 2004 David Grudl (https://davidgrudl.com)
6
 */
7
 
8
declare(strict_types=1);
9
 
10
namespace Nette\Utils;
11
 
12
use Nette;
13
 
14
 
15
/**
16
 * Represents the file or directory returned by the Finder.
17
 * @internal do not create instances directly
18
 */
19
final class FileInfo extends \SplFileInfo
20
{
21
	private string $relativePath;
22
 
23
 
24
	public function __construct(string $file, string $relativePath = '')
25
	{
26
		parent::__construct($file);
27
		$this->setInfoClass(static::class);
28
		$this->relativePath = $relativePath;
29
	}
30
 
31
 
32
	/**
33
	 * Returns the relative directory path.
34
	 */
35
	public function getRelativePath(): string
36
	{
37
		return $this->relativePath;
38
	}
39
 
40
 
41
	/**
42
	 * Returns the relative path including file name.
43
	 */
44
	public function getRelativePathname(): string
45
	{
46
		return ($this->relativePath === '' ? '' : $this->relativePath . DIRECTORY_SEPARATOR)
47
			. $this->getBasename();
48
	}
49
 
50
 
51
	/**
52
	 * Returns the contents of the file.
53
	 * @throws Nette\IOException
54
	 */
55
	public function read(): string
56
	{
57
		return FileSystem::read($this->getPathname());
58
	}
59
 
60
 
61
	/**
62
	 * Writes the contents to the file.
63
	 * @throws Nette\IOException
64
	 */
65
	public function write(string $content): void
66
	{
67
		FileSystem::write($this->getPathname(), $content);
68
	}
69
}