25 lines
468 B
PHP
25 lines
468 B
PHP
<?php
|
|||
|
|
|
||
|
|
namespace App\Support\Publishing;
|
||
|
|
|
||
|
|
use App\Models\Post;
|
||
|
|
|
||
|
|
class PublisherManager
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* @param array<Publisher> $publishers
|
||
|
|
*/
|
||
|
|
public function __construct(private readonly array $publishers) {}
|
||
|
|
|
||
|
|
public function resolve(Post $post): ?Publisher
|
||
|
|
{
|
||
|
|
foreach ($this->publishers as $publisher) {
|
||
|
|
if ($publisher->supports($post)) {
|
||
|
|
return $publisher;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
}
|