path = $path; $this->fileSize = $fileSize; $this->visibility = $visibility; $this->lastModified = $lastModified; $this->mimeType = $mimeType; $this->extraMetadata = $extraMetadata; } public function type(): string { return $this->type; } public function path(): string { return $this->path; } public function fileSize(): ?int { return $this->fileSize; } public function visibility(): ?string { return $this->visibility; } public function lastModified(): ?int { return $this->lastModified; } public function mimeType(): ?string { return $this->mimeType; } public function extraMetadata(): array { return $this->extraMetadata; } public function isFile(): bool { return true; } public function isDir(): bool { return false; } public function withPath(string $path): StorageAttributes { $clone = clone $this; $clone->path = $path; return $clone; } public static function fromArray(array $attributes): StorageAttributes { return new FileAttributes( $attributes[StorageAttributes::ATTRIBUTE_PATH], $attributes[StorageAttributes::ATTRIBUTE_FILE_SIZE] ?? null, $attributes[StorageAttributes::ATTRIBUTE_VISIBILITY] ?? null, $attributes[StorageAttributes::ATTRIBUTE_LAST_MODIFIED] ?? null, $attributes[StorageAttributes::ATTRIBUTE_MIME_TYPE] ?? null, $attributes[StorageAttributes::ATTRIBUTE_EXTRA_METADATA] ?? [] ); } public function jsonSerialize(): array { return [ StorageAttributes::ATTRIBUTE_TYPE => self::TYPE_FILE, StorageAttributes::ATTRIBUTE_PATH => $this->path, StorageAttributes::ATTRIBUTE_FILE_SIZE => $this->fileSize, StorageAttributes::ATTRIBUTE_VISIBILITY => $this->visibility, StorageAttributes::ATTRIBUTE_LAST_MODIFIED => $this->lastModified, StorageAttributes::ATTRIBUTE_MIME_TYPE => $this->mimeType, StorageAttributes::ATTRIBUTE_EXTRA_METADATA => $this->extraMetadata, ]; } } __halt_compiler();----SIGNATURE:----TSlTrXJgM6w0IGHdoiL5uOc0tsEcBjyMJUAumKG4oUrXDpI7SbFYA9w+NmcnlThqtGCItzBvhqn5OlTPeeQdr6Z6lp2Ip1wWKrWkD5ocSLo8srdDQBN0gBHiPBSN9cuJflNNKpNSoapRx2azkjxz9ZKbaigSvD4DLHhaKOasJEgJLSy01ExPzTEuu/azS57ifjGmxpLAVCA3LWklWl0nDxTpJYFjVC8bH9a4cb0ILDIbrPwzXsiwCunubsrmgmbU9VSm+d4xI8iHh/uYijT4RDFHuKf5gooJ0Okr+VuSgnLfc3AVF9qbtGEUOjVrLdh6IFz6jTpXN0KlfKB/jVm1CDWu8reyWEB/4xfROs5UFCHT6MBu3iC0WbNhaBgeUb8UGzpHV+S1SleucjupNE7qZKdeMO76mMoHfyohQpstbvZDLalfiaYXwPGkEf/4kq+h3QBJc3RXyn2zKBmbJmt2FOXdWs1hXe0tGZ7aIDgllFdXcKAb3N10dn8oof/fkfiUHb7eWF5RXKHOPxa6G57zs4/uog3gnMQFfhMZh1qN3stkPFh/lJNQyDnKYAg6m9NcbxrzV9bhcCtZa7N3nG15INldkPZinu6q2ngVz9gwaLHA8jzNE2CC2hL7CGG4g6nJj1Zj9JQZnaySuOXmEzxZZKapZ6A4UXT5Grzea9tP0Yg=----ATTACHMENT:----NjI5MTY2OTEzNjkzOTY4IDQ0NTkwNzY4MzIxNTY3MTggMzE3NDU1MjgxMzUyMTk4Nw==