for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php declare(strict_types = 1);
namespace Venta\Filesystem;
use DateTime;
use DateTimeInterface;
use Venta\Contracts\Filesystem\Metadata as MetadataContract;
/**
* Class Metadata
*
* @package Venta\Filesystem
*/
class Metadata implements MetadataContract
{
* @var array
private $data = [];
* Metadata constructor.
* @param array $data
public function __construct(array $data)
$this->data = $data;
}
* @inheritDoc
public function mimetype(): string
return $this->data['mimetype'] ?? '';
public function size(): int
return $this->data['size'] ?? 0;
public function timestamp(): DateTimeInterface
if (!isset($this->data['timestamp'])) {
return null;
if ($this->data['timestamp'] instanceof DateTimeInterface) {
return $this->data['timestamp'];
return (new DateTime())->setTimestamp($this->data['timestamp']);
public function type(): string
return $this->data['type'] ?? '';
public function path(): string
return $this->data['path'] ?? '';