我目前正在开发一个系统,我必须明智地获取记录。
假设我们有一个名为Clients的模块,我们可以管理客户信息并将客户端分配给用户。
假设我们有以下用户:
那么,我现在该怎么做?
<?php
class ClientRepositoryinterface {
public function getAllClients();
public function getAssignedClients(User $user);
public function getPaginatedClients();
public function getPaginatedAssignedClients(User $user);
}
class ClientService {
public function __constructor(ClientRepositoryInterface $clientRepository, LoggedInUser $user);
public function getClients()
{
if($this->user->can('manage.all.clients','view.client.information'))
{
return $this->clientRepository->getAllClients();
}
if($this->user->can('manage.assigned.clients'))
{
return $this->clientRepository->getAssignedCliets($this->user);
}
return [];
}
public function getPaginatedClients()
{
if($this->user->can('manage.all.clients','view.client.information')){
return $this->clientRepository->getPaginatedClients();
}
if($this->user->can('manage.assigned.clients')){
return $this->clientRepository->getPaginatedAssignedClients($this->user);
}
return [];
}
}
那么,这段代码有什么问题?
那么,我们可以采用其他解决方案来解决这个问题吗?