MAMP php5严格标准

我正在尝试在mamp的php.ini中将error_reporting设置为E_ALL&〜E_STRICT。

但是这根本没有受到影响。 我确认我正在编辑正确的文件,通过设置不同的error_reporting像E_NOTICE和检查phpinfo来验证相同。

但只有〜E_STRICT没有发生。

当我访问我的cms(concrete5)时,它给了我一个严格错误列表(粘贴下面的前几个):

Strict Standards: Non-static method Cache::get() should not be called statically in www/concrete/models/package.php on line 78

严格标准:非静态方法Cache :: key()不应在第117行的www / concrete / libraries / cache.php中静态调用

严格标准:非静态方法Cache :: getLibrary()不应该在第121行的www / concrete / libraries / cache.php中静态调用

试图在.htaccess和index.php文件中将error_reporting设置为E_ALL&〜E_STRICT。 没有工作。

请解决。


Concrete5有一个设置,可以在显示板 - >系统和设置 - >环境 - >调试设置中抑制显示错误和警告(以及我所设想的通知)。 有可能你有这个设置来隐藏所有的错误/警告 - 这将覆盖配置文件中的设置。

至于@ PeeHaa的关于压制错误而不是修复它们的评论,那么它并不那么简单,因为Concrete5 CMS本身有一个TON的php会产生通知。 我认为这是因为在某些事情被弃用之前几年前编写的代码。 例如,即使该函数未被声明为“静态”,仍有大量系统函数被静态调用。 在老版本的PHP中,这是一件好事,但现在却不受欢迎。 不幸的是,我不认为你可以对此做任何事情。

不幸的是,这是使用Concrete5的一个折衷。 这是最好的CMS,但它并不总是最先进的开发人员最先进的平台。


让Concrete5忽略这些错误并加载一个页面(包括仪表板)是非常棘手的。 最好的办法是将PHP降级到最新的5.3.X,直到PHP 5.4.X兼容版本发布。


我通过从我的imac上的mamp转移到xampp来解决这个问题。

与mamp问题:它不允许我们使用php 5.3,除非我们有mamp pro

我使用的解决方案:我使用php 5.3迁移到xampp,并且一切都很顺利。

链接地址: http://www.djcxy.com/p/58921.html

上一篇: MAMP php5 strict standards

下一篇: why is the code behaving this way WRT reference return?