繁体   English   中英

MAMP php5严格标准

[英]MAMP php5 strict standards

我正在尝试将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

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

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

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

请解决。

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

至于@ PeeHaa的有关取消错误,而不是固定他们的评论,那么它不是那么简单,因为Concrete5 CMS本身具有PHP将生成通知的一 我认为这是由于几年前不赞成使用某些东西而编写的代码。 例如,有很多系统函数被静态调用,即使该函数未声明为“静态”也是如此。 在旧版本的PHP中这是可以做的事情,但现在对此感到不满意。 不幸的是,我认为您对此无能为力。

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

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

通过在imac上从mamp切换到xampp,我解决了这个问题。

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

我使用的解决方案:我使用php 5.3迁移到了xampp,并且一切正常。

如果MAMP似乎忽略了php.ini中的设置(例如E_STRICT),则可能是您未编辑正确的文件。 您可以看到哪个配置文件正在用phpinfo()加载;

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM