ZF2: ServiceLocatorAwareInterface устарел и будет удален в версии 3.0

Как это можно исправить (Zend версии 2.5)?

ServiceLocatorAwareInterface устарела и будет удалена в версии 3.0 вместе с ServiceLocatorAwareInitializer. Обновите класс Teacher\Controller\TeacherController, чтобы удалить реализацию, и вместо этого начните внедрять свои зависимости через фабрику

Я старался:

class TeacherControllerFactory implements FactoryInterface
    {
        public function __invoke(ContainerInterface $container, $name, array $options = null)
        {
            return new TeacherController(
                $container->getServiceLocator()->get(TeacherService::class)
            );
        }

        /**
         * Create and return TeacherController instance
         *
         * For use with zend-servicemanager v2; proxies to __invoke().
         *
         * @param ServiceLocatorInterface $container
         * @return TeacherController
         */
        public function createService(ServiceLocatorInterface $container)
        {
            return $this($container, TeacherController::class);
        }
    }

2 ответа

Посмотрите здесь. Патч уже слит. Вот ссылка на патч.

Эта ссылка помогла мне правильно ввести зависимости.

Вам нужно добавить ~E_USER_DEPRECATED

Вы можете добавить в public/index.php

ini_set ( "error_reporting", E_ALL & ~ E_DEPRECATED & ~E_USER_DEPRECATED  & ~ E_STRICT );

или же

error_reporting ( E_ALL & ~ E_DEPRECATED & ~ E_USER_DEPRECATED & ~ E_STRICT );

Генерируемое пользователем предупреждающее сообщение. Это похоже на E_DEPRECATED, за исключением того, что оно генерируется в коде PHP с помощью PHP-функции trigger_error ().

http://php.net/manual/en/errorfunc.constants.php

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