Разрешение Zend RBAC / класс вызова ошибки

Я разрабатываю приложение с Zend-framework 3, которое требует управления ролями пользователей. Для этого я использую компонент zend-permission-rbac.

Но у меня все еще возникает ошибка:

Файл: /home/myhost/ppvc/module/User/src/Service/RbacManager.php:77

Сообщение: Класс 'Zend \ Permissions \ Rbac \ Rbac' не найден

Вот часть трассировки стека, если это может помочь:

  • /home/myhost/ppvc/module/User/src/Service/RbacManager.php(116): Пользователь \ Сервис \ RbacManager-> init ()
  • /home/myhost/ppvc/module/User/src/Controller/Plugin/AccessPlugin.php(25): User \ Service \ RbacManager-> isGranted (NULL, 'user.manage', Array)
  • [внутренняя функция]: Пользователь \ Контроллер \ Плагин \ AccessPlugin -> __ invoke ('user.manage')

Эта ошибка появляется, когда я впервые устанавливаю свой контейнер Rbac:

  public function init($forceCreate = false)
{
    if ($this->rbac!=null && !$forceCreate) {
        // Already initialized; do nothing.
        return;
    }

    // If user wants us to reinit RBAC container, clear cache now.
    if ($forceCreate) {
        $this->cache->removeItem('rbac_container');
    }

    // Try to load Rbac container from cache.
    $result = false;
    $this->rbac = $this->cache->getItem('rbac_container', $result);
    if (!$result)
    {
        // Create Rbac container.
        $rbac = new Rbac();
        $this->rbac = $rbac;
.....

Также я правильно называю свой класс Rbac:

use Zend\Permissions\Rbac\Rbac;

Я не могу понять, откуда взялась эта ошибка, похоже, что папка vendor / zend-permissions-rbac не «читается» приложением. Я обновил файлы composer.json и composer.lock и проверил их, мой модуль правильно называется (composer.json):

"zendframework/zend-permissions-rbac": "^3.0",

Я следую этому руководству: Контроль доступа на основе ролей

Любая помощь приветствуется! (Извините, если я допустил ошибку, английский не мой язык)

Обновлено: я проверил свою версию PHP на предмет объявлений типа возвращаемого значения (потому что модуль Rbac полон этого), но я нахожусь в версии 7.2, поэтому с этим проблем нет.

Максим

Это ошибка php. Значит, что-то напортачило с автозагрузкой. Он практически не может найти файл класса. Вы пробовали dump autoload на композиторе?

Mehmet SÖĞÜNMEZ 18.09.2018 22:47

Привет, Мехмет, спасибо за ответ! Да, я попробовал coposer dump autoload, и он ничего не изменил, мне интересно, может ли это быть версия компонента RBAC, которая будет содержать ошибку?

Maxime Guiton 20.09.2018 14:00
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
80
1

Ответы 1

Другой вариант, который следует рассмотреть, - это управление разрешениями как отдельной службы, чтобы можно было легко управлять политиками по мере увеличения масштаба и добавления дополнительных функций. https://cerbos.dev - один из примеров.

Другие вопросы по теме