严格的标准错误在CakePhp


Strict Standards Error in CakePhp?

我使用的是xampp v3.1.0 3.1.0和cakephp 1.2.10,但我有这两个错误。

严格的标准:在E:'xampp'htdocs'projectname'cake'libs' Object .php中重新定义已经定义的构造函数

严格标准:非静态方法Configure::getInstance()不应该在E:'xampp'htdocs'projectname'cake'bootstrap.php第46行中静态调用

Thanks in advance

E_STRICT警告是警告,而不是错误-要知道问题是PHP 5.4+特有的:

代码(整数)

让PHP建议修改你的代码,这将确保最好的代码的互操作性和前向兼容性。

从PHP 5 开始,但直到PHP 5.4.0才包含在E_ALL中

你可以忽略它们(在采取措施防止用户看到它们之后)。

你有几个选择,升级是最合适的。如果它是一个你正在维护的应用程序-最好升级到当前的稳定版本(撰写本文时为2.4),但如果不是这种情况/理想/可能-升级仍然是最合适的解决方案:

升级到最新版本1.3

推荐

1.3.17是1。X发布周期。它是php 5.4兼容,并包括无数的错误和安全修复。它确实有一些迁移步骤,但它们通常不超过几分钟(或最多几个小时)的工作。升级是一个简单的过程-只需下载新版本并替换cake文件夹。

升级到最新版本1.2

简单

1.2.12是最新的1.2小版本,也与php 5.4兼容,升级到这个版本与您现有的应用程序代码没有兼容性问题的风险。升级是一个简单的过程-只需下载新版本并替换cake文件夹。

沉默E_STRICT警告自己

最简单的(但也很hacky)

使1.2 php 5.4兼容所需的更改实际上非常微不足道-您可以自己应用它(只需查找error_reporting并将 & ~E_STRICT添加到设置中)。编辑蛋糕文件夹当然是不推荐的 -但是如果你正在寻找最少更改的解决方案:这就是它。

似乎旧的CakePHP不能很好地与新版本的PHP兼容。请看这里:http://i.justrealized.com/2009/cakephp-php-deprecated-error-warning/

请注意CakePHP 1.2已弃用。如果您想坚持使用1,建议至少使用1.3。X版本,因为它与1.2没有主要区别。

但是如果您仍然坚持,您可以将PHP降级到5.2或更低版本以兼容