我使用了另一个类作为依赖注入是很好的解决方法,或者我搞砸了OOP方式。
Helper.php
class Helper {
public function getModulePermission($role_id, $module, $type) {
// my work code
}
}
DesignationController.php
use App\Helpers\Helper;
class DesignationController extends Controller {
protected $designation;
protected $helper;
/**
* @param DesignationContract $designation
* @param Helper $helper
*/
public function __construct(DesignationContract $designation, Helper $helper) {
$this->designation = $designation;
$this->helper = $helper;
}
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index(Request $request) {
$permission = $this->helper->getModulePermission($request->id, 'Designation', 'view');
if ($permission) {
return true;
} else {
return view('errors.forbidden');
}
}
所以我有一个名为Helper
的类,可以在每个控制器中访问以检查权限,但我认为我已经搞砸了OOP功能。像它一样工作是好事还是我需要创建一个Interface
而不是类
答案 0 :(得分:0)
所以目前的情况已经足够好了,但这完全取决于你想要做的事情。
答案 1 :(得分:0)
我不喜欢这个名字,它对我没有任何意义,或者让我知道这个课程可以帮助我获得模块的权限。此外,使用这样的名称,可以简单地使用另一种方法,比如让我们说Helper::login($id)
或者命名它,这将立即违反单一责任原则(无论如何,laravel控制器都会这样做)。
注入相对比较好,也许中间件类可能是更好的选择。