Laravel 5 - 具有全局访问权限的自定义助手类

时间:2016-05-23 09:18:53

标签: php laravel-5 acl ioc-container rbac

我的自定义帮助程序类是:

位于app / bootstrap / ACL.php

class ACL {

    public function __construct(){
       //Get user from session
       //Get user permission array
    }

    public function isAllowed($key){
        return 'calling from ACL class';
    }

} 

现在,我需要在所有项目控制器中访问此ACL类。所以 我在app.php文件中require_once 'ACL.php';

然后在我的控制器内我可以执行以下操作:

class UserController extends Controller {

    public function editDetails() {

        $acl = new \ACL();
        echo $acl->isAllowed('edit-details');

        //below is the code to edit details

    }
}

这段代码有效,但我觉得应该有一个Laravel 5正确的方法来做到这一点。 我想知道:

1)这种方法是否正常或是否有更好的方法来实现这一目标?

2)如果不在每个控制器中执行$acl = new \ACL();,我可以使用全局变量吗? 或类似这样的事件ACL::isAllowed('edit-details');

3)如何在Blade模板中正确运行$acl->isAllowed('edit-details')条件?

非常感谢!

1 个答案:

答案 0 :(得分:0)

为什么不直接将其添加到类图?

"autoload": {
  "classmap": [
      "app/Classes"
  ]
}

然后,您可以将您的班级放入app下的“/ classes”文件夹中,然后使用它。 跑吧

composer dump-autoload

然后你可以像laravel中的其他类一样使用它。