MAMP php5严格标准

时间:2012-07-12 11:27:31

标签: mamp php error-reporting strict concrete5

我正在尝试将error_reporting设置为E_ALL& mamp的php.ini中的~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

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

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

尝试将error_reporting设置为E_ALL& 〜._taccess中的E_STRICT以及index.php文件。没人工作。

请解决。

4 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

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

查看正在加载的配置文件

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

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

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