Php 严格的标准:声明::postDispatch()

Php 严格的标准:声明::postDispatch(),php,zend-framework,doctrine,strict,Php,Zend Framework,Doctrine,Strict,我想用ZF1.11配置条令2.2。一切都已完成,但我不知道这是什么错误: 严格标准:Sc\Resource\EntityManagerFront::postDispatch的声明应与第26行D:\xampp\htdocs\Sc\library\Sc\Resource\EntityManagerFront.php中Zend_Controller_Plugin_Abstract::postDispatch的声明兼容 我的代码: <?php namespace Sc\Resource

我想用ZF1.11配置条令2.2。一切都已完成,但我不知道这是什么错误:

严格标准:Sc\Resource\EntityManagerFront::postDispatch的声明应与第26行D:\xampp\htdocs\Sc\library\Sc\Resource\EntityManagerFront.php中Zend_Controller_Plugin_Abstract::postDispatch的声明兼容

我的代码:

    <?php


namespace Sc\Resource;
use Zend_Controller_Plugin_Abstract, Zend_Controller_Front;

class EntityManagerFront extends Zend_Controller_Plugin_Abstract
{

  /**
   * Flush the EntityManager.
   *
   * (non-PHPdoc)
   * @see Zend_Controller_Plugin_Abstract::dispatchLoopShutdown()
   */

  public function postDispatch($request)
  {

    $bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
    $em = $bootstrap->getResource('EntityManager');
    $em->flush();

    return $em;
  }
}

postDispatch函数的签名为

public function postDispatch(Zend_Controller_Request_Abstract $request)

因此,您必须指定$request参数类型:Zend_Controller_request_Abstract

postDispatch函数的签名是

public function postDispatch(Zend_Controller_Request_Abstract $request)
因此,您必须指定$request参数类型:Zend_Controller_request_Abstract

最终固定解决方案:

<?php

namespace Sc\Resource;

use Zend_Controller_Plugin_Abstract,
    Zend_Controller_Front,
        Zend_Controller_Request_Http,
        Zend_Controller_Request_Abstract;


class EntityManagerFront extends Zend_Controller_Plugin_Abstract {
    /**
     * Flush the EntityManager.
     *
     * (non-PHPdoc)
     * @see Zend_Controller_Plugin_Abstract::dispatchLoopShutdown()
     */
    public function postDispatch(Zend_Controller_Request_Abstract $request) {

        $bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
        $em = $bootstrap->getResource('EntityManager');
        $em->flush();

        return $em;
    }
}
最终固定解决方案:

<?php

namespace Sc\Resource;

use Zend_Controller_Plugin_Abstract,
    Zend_Controller_Front,
        Zend_Controller_Request_Http,
        Zend_Controller_Request_Abstract;


class EntityManagerFront extends Zend_Controller_Plugin_Abstract {
    /**
     * Flush the EntityManager.
     *
     * (non-PHPdoc)
     * @see Zend_Controller_Plugin_Abstract::dispatchLoopShutdown()
     */
    public function postDispatch(Zend_Controller_Request_Abstract $request) {

        $bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
        $em = $bootstrap->getResource('EntityManager');
        $em->flush();

        return $em;
    }
}

可捕获致命错误:传递给Sc\Resource\EntityManagerFront::postDispatch的参数1必须是Sc\Resource\Zend\u Controller\u Request\u Abstract、Zend\u Controller\u Request\u Http的实例,在第333行的D:\xampp\htdocs\sc\library\Zend\Controller\Plugin\Broker.php中调用,并在第18行的D:\xampp\htdocs\sc\library\sc\Resource\EntityManagerFront.php中定义,通过使用此选项解决:Zend\u Controller\u Request\u abstractcatable致命错误:传递给sc\Resource\EntityManagerFront::postDispatch的参数1必须是Sc\Resource\Zend\u Controller\u Request\u Abstract,给定的Zend\u Controller\u Request\u Http实例,在第333行的D:\xampp\htdocs\Sc\library\Zend\Controller\Plugin\Broker.php中调用,在第18行的D:\xampp\htdocs\Sc\library\Sc\Resource\EntityManagerFront.php中定义,通过使用它来解决:Zend\u Controller\u Request\u Abstract