1

我正在尝试在 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 中静态调用

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

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

请解决。

4

4 回答 4

1

Concrete5 有一个设置可以禁止显示错误和警告(以及我认为的通知)——在仪表板 -> 系统和设置 -> 环境 -> 调试设置中。您可能已将此设置为隐藏所有错误/警告——这将覆盖您在配置文件中的设置。

至于@PeeHaa 关于抑制错误而不是修复错误的评论,这并不那么简单,因为 Concrete5 CMS 本身有大量的php会生成通知。我认为这是因为几年前在某些东西被弃用之前编写的代码。例如,有大量系统函数被静态调用,即使该函数未声明为“静态”。这在旧版本的 PHP 中是一件好事,但现在不受欢迎。不幸的是,我认为您对此无能为力。

不幸的是,这是使用 Concrete5 的权衡之一。它是目前最好的 CMS,但对于更高级的开发人员来说,它并不总是最复杂的平台。

于 2012-07-12T20:05:20.747 回答
0

我通过在我的 imac 上从 mamp 移动到 xampp 解决了这个问题。

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

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

于 2012-08-23T08:28:52.140 回答
0

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

于 2012-07-24T03:01:34.843 回答
0

如果 MAMP 似乎忽略了 php.ini 中的设置(例如 E_STRICT),那么您可能没有编辑正确的文件。您可以使用 phpinfo(); 查看正在加载的配置文件。

查找这一行:加载的配置文件:/Applications/MAMP/bin/php/php5.4.4/conf/php.ini

请注意它在我机器上的 MAMP/bin 中的情况。使用默认的 MAMP 安装,很容易将模板配置文件误认为是实时配置文件。

在正确的位置设置时,MAMP 不会忽略 E_STRICT。

于 2013-02-27T16:24:34.653 回答