28 lines
606 B
PHP
28 lines
606 B
PHP
<?php
|
|
namespace Incoviba\Common\Implement\Repository;
|
|
|
|
use Closure;
|
|
use Incoviba\Common\Define;
|
|
|
|
class Factory implements Define\Repository\Factory
|
|
{
|
|
public Closure $callable;
|
|
public array $args;
|
|
|
|
public function setCallable(callable $callable): Define\Repository\Factory
|
|
{
|
|
$this->callable = $callable(...);
|
|
return $this;
|
|
}
|
|
public function setArgs(array $args): Define\Repository\Factory
|
|
{
|
|
$this->args = $args;
|
|
return $this;
|
|
}
|
|
|
|
public function run(): mixed
|
|
{
|
|
return call_user_func_array($this->callable, $this->args);
|
|
}
|
|
}
|