๐ญFactory Design Pattern
Native Factory Design Pattern Support
class UserService extends BaseService
{
public function __construct(
protected UserRepositoryInterface $userRepository,
protected ObjectMutable $objectMutable
) {
}
public function index(array $filterable = [], array $relationship = []): Collection|Paginator
{
$mutableBeforeData = $this->objectMutable->create([
"filterable" => $filterable,
"relationship" => $relationship
]);
$this->interceptorEventDispatch(
eventKey: "index.before",
data: $mutableBeforeData
);
$filterable = $mutableBeforeData->get("filterable");
$relationship = $mutableBeforeData->get("relationship");
$users = $this->userRepository->fetchAll($filterable, $relationship);
$this->objectMutable->create([
"users" => $users,
]);
$this->interceptorEventDispatch(
eventKey: "index.after",
data: $mutableAfterData
);
return $mutableAfterData->get("users");
}
}How to Use the Factory Pattern
Defining Factories in the Service Provider
Factory Conditions
Closure method
Custom method
Last updated