This is normal. But if the model class gets too big, sometimes I create a "manager" object to push some responsibility out of the model class. For instance:
class User extends Model
{
protected $permissionManager;
public function __contruct(){
$this->permissionManager = new PermissionManager( $this );
}
}
class PermissionManager
{
protected $user;
public function __contruct(User $user){
$this->user = $user;
}
public function hasAccessTo(Resource $res){
}
public function isManager(){
}
}
, , , "" .
:
$user->permissionManager->hasAccessTo( $resource );
, User PermissionManager (aka factory)
- Traits. Laravel ; , , . , , , , .