你会如何解决这个设计问题?
Laravel 4 auth基本上使用以下文件:
> Auth.PHP(门面)
> AuthManager.PHP
> AuthServiceProvider.PHP
> Guard.PHP
> auth.PHP(config)
> User.PHP(雄辩的模型)
我已经玩过复制这些文件,主要是为工作的教练实体提供一个独立的auth,在app.PHP文件中注册Facade和服务提供者,以及对config进行必要的更改以使用Coach用于身份验证的雄辩模型:
> AuthCoach.PHP(门面)
> AuthCoachManager.PHP
> AuthCoachServiceProvider.PHP
> Guard.PHP
> authcoach.PHP(config)
> Coach.PHP(雄辩的模型)
我仍在使用标准Laravel 4 auth中的Guard.PHP,但是如果需要通过创建GuardCoach.PHP文件来定制Guard方法的Guard方法,可以轻松扩展Guard.
如果我要为每个实体类型分别使用auth,你认为这是实现它的好方法吗?
你能看到任何潜在的问题或知道更好的方法吗?
如果您对Sentry不满意(个人而言,我不使用该库)我可以推荐Zizaco / Confide Zizaco / Entrust作为用户/角色/权限管理的干净而优雅的解决方案.在这里查看Zizaco GitHub.
一个快速的总体思路:
>对整个应用程序使用单一的干净身份验证机制
>使用角色或角色权限进行粒度访问
>将您的管理逻辑分成单独的控制器(AdminUserController,AdminCoachController,等等……)
>我认为组成合适的刀片模板结构没有任何困难,以便完成所有工作并且组织良好
你的多态问题是什么?
如果您担心您的用户表会变得混乱,请将其留作存储身份验证详细信息的位置,并将所有其他必要(非身份验证)用户详细信息放在另一个表中.
希望这可以帮助你,只要我理解你的问题.