Files
oficial/app/common/Implement/Repository/Factory.php
2023-08-08 23:53:49 -04:00

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);
}
}