chore: complete update
This commit is contained in:
16
src/Framework/Meta/Keywords.php
Normal file
16
src/Framework/Meta/Keywords.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Framework\Meta;
|
||||
|
||||
final class Keywords
|
||||
{
|
||||
private function __construct(
|
||||
public array $keywords,
|
||||
) {}
|
||||
|
||||
public static function fromStrings(string ...$keywords): self
|
||||
{
|
||||
return new self($keywords);
|
||||
}
|
||||
}
|
||||
13
src/Framework/Meta/MetaData.php
Normal file
13
src/Framework/Meta/MetaData.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Framework\Meta;
|
||||
|
||||
final readonly class MetaData
|
||||
{
|
||||
public function __construct(
|
||||
public string $title,
|
||||
public string $description = '',
|
||||
public OpenGraph $openGraph = new OpenGraphTypeWebsite,
|
||||
) {}
|
||||
}
|
||||
8
src/Framework/Meta/MetaResolver.php
Normal file
8
src/Framework/Meta/MetaResolver.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Framework\Meta;
|
||||
|
||||
interface MetaResolver
|
||||
{
|
||||
public function __invoke(): MetaData;
|
||||
}
|
||||
8
src/Framework/Meta/OpenGraph.php
Normal file
8
src/Framework/Meta/OpenGraph.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Framework\Meta;
|
||||
|
||||
interface OpenGraph
|
||||
{
|
||||
public OpenGraphType $type {get;}
|
||||
}
|
||||
10
src/Framework/Meta/OpenGraphType.php
Normal file
10
src/Framework/Meta/OpenGraphType.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Framework\Meta;
|
||||
|
||||
enum OpenGraphType:string
|
||||
{
|
||||
case WEBSITE = 'website';
|
||||
case ARTICLE = 'article';
|
||||
}
|
||||
9
src/Framework/Meta/OpenGraphTypeWebsite.php
Normal file
9
src/Framework/Meta/OpenGraphTypeWebsite.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Framework\Meta;
|
||||
|
||||
final class OpenGraphTypeWebsite implements OpenGraph
|
||||
{
|
||||
public OpenGraphType $type = OpenGraphType::WEBSITE;
|
||||
}
|
||||
23
src/Framework/Meta/StaticPageMetaResolver.php
Normal file
23
src/Framework/Meta/StaticPageMetaResolver.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Framework\Meta;
|
||||
|
||||
final class StaticPageMetaResolver implements MetaResolver
|
||||
{
|
||||
public function __construct(
|
||||
public string $title,
|
||||
public string $description,
|
||||
#public Keywords $keywords,
|
||||
) {}
|
||||
|
||||
public function __invoke(): MetaData
|
||||
{
|
||||
return new MetaData(
|
||||
$this->title,
|
||||
$this->description,
|
||||
#$this->keywords,
|
||||
new OpenGraphTypeWebsite
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user