【发布时间】:2019-09-20 14:28:00
【问题描述】:
我在尝试实现 MaintenanceListener 服务时遇到了一点错误,该服务将显示维护页面 这是我的 services.yml
# https://symfony.com/doc/current/service_container.html
services:
# default configuration for services in *this* file
_defaults:
# automatically injects dependencies in your services
autowire: true
# automatically registers your services as commands, event subscribers, etc.
autoconfigure: true
# this means you cannot fetch services directly from the container via $container->get()
# if you need to do this, you can override this setting on individual services
public: false
# makes classes in Cocorico\CoreBundle\DataFixtures\ORM\ available to be used as services
# this creates a service per class whose id is the fully-qualified class name
# Cocorico\CoreBundle\DataFixtures\ORM\:
# resource: '../../src/Cocorico/CoreBundle/DataFixtures/ORM/*'
# makes classes in src/AppBundle available to be used as services
# this creates a service per class whose id is the fully-qualified class name
AppBundle\:
resource: '../../src/AppBundle/*'
# you can exclude directories or files
# but if a service is unused, it's removed anyway
exclude: '../../src/AppBundle/{Entity,Repository,Tests,Event}'
# controllers are imported separately to make sure they're public
# and have a tag that allows actions to type-hint services
# AppBundle\Controller\:
# resource: '../../src/AppBundle/Controller'
# public: true
# tags: ['controller.service_arguments']
# add more services, or override services that need manual wiring
# AppBundle\Service\ExampleService:
# arguments:
# $someArgument: 'some_value'
maintenance_listener:
class: AppBundle\Event\MaintenanceListener
arguments:
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }```
这是我的课:
<?php
namespace MListener;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpFoundation\Response;
class MListener
{
public function onKernelRequest(GetResponseEvent $event)
{
$event->setResponse(new Response('Iziparty is in maintenance mode', Response::HTTP_SERVICE_UNAVAILABLE));
$event->stopPropagation();
}
}
这是我得到的错误: FastCGI 在 stderr 中发送:“PHP 消息:PHP 致命错误:无法声明类 MListener\MListener,因为该名称已在 /var/www/Symfony/src/AppBundle/Event/MaintenanceListener.php 第 9 行中使用”,同时阅读来自上游的响应头 感谢您的帮助。
【问题讨论】: