【问题标题】:Runtime Notice: Declaration of in symfony2运行时注意事项:symfony2 中的声明
【发布时间】:2014-06-11 17:29:30
【问题描述】:

我开发到不同的系统。其中一个使用 PHP 5.4,另一个我使用 PHP 5.5.9。

如果我用 5.4 版本打开我的项目,一切都很好并且没有错误报告。但是如果我尝试使用 PHP 5.5.9 打开同一个项目,我会收到以下错误并且 symfony 停止:

ContextErrorException: 运行时注意事项:Event\UserBundle\Manager\EventManager::getRepository() 的声明应该与 Event\UserBundle\Manager\AbstractManager::getRepository($entity = NULL) in ... 兼容

现在我读到 php 严格警告可能会产生此错误。但在我的 PHP.ini 错误设置中是这样的:

E_ALL & ~E_DEPRECATED & ~E_STRICT

谁能帮我解决这个问题?

【问题讨论】:

    标签: php symfony error-handling


    【解决方案1】:

    问题是您要覆盖的方法getRepository 与基本方法getRepository($entity = null) 的格式不同。要停止错误(通过使其兼容),只需将$entity = null 添加到方法声明中。

    至于实际的错误问题(不显示然后显示)我无法帮助您。在较新的版本中,事情可能变得更加严格。我最近确实注意到,较新的版本不允许函数在类中声明为抽象,然后在伴随的接口中声明,所以这是可能的。

    【讨论】:

    • 当类位于供应商内部时,您如何纠正此错误?
    • 当子类在vendor文件夹中时?如果它是子类,那么您可以提出问题并希望它得到解决和/或分叉存储库并暂时更改它(并将分叉存储库添加到您的 composer.json 文件)。
    猜你喜欢
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2020-07-18
    相关资源
    最近更新 更多