Php 严格的标准:声明::postDispatch()
我想用ZF1.11配置条令2.2。一切都已完成,但我不知道这是什么错误: 严格标准:Sc\Resource\EntityManagerFront::postDispatch的声明应与第26行D:\xampp\htdocs\Sc\library\Sc\Resource\EntityManagerFront.php中Zend_Controller_Plugin_Abstract::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
<?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_AbstractpostDispatch函数的签名是
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