for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Sfneal\ViewExport\Pdf\Utils;
class Metadata
{
/**
* Array of valid metadata keys.
*
* @var string[]
*/
private $validMetadataKeys = [
'Title',
'Author',
'Subject',
'Keywords',
'Creator',
'Producer',
'CreationDate',
'ModDate',
'Trapped',
];
* Metadata info to add to the PDF.
* - keys are validated from $validMetadata property
* @var array
private $metadata = [];
* Metadata constructor.
* @param array|null $metadata
public function __construct(array $metadata = null)
if (! empty($metadata)) {
$this->set($metadata ?? config('view-export.metadata'));
}
* Retrieve an array of metadata.
* @return array
public function get(): array
return $this->metadata;
* Set the entire $metadata array.
* @param array $metadata
* @return $this
public function set(array $metadata): self
$this->metadata = array_filter($metadata, function ($key) {
return $this->validateMetadata($key);
});
return $this;
* Add a $key, $value pair to the metadata array.
* @param string $key
* @param $value
public function add(string $key, $value): self
if ($this->validateMetadata($key)) {
$this->metadata[$key] = $value;
* Confirm a potential metadata key is valid.
* @return bool
private function validateMetadata(string $key): bool
return in_array($key, $this->validMetadataKeys);