CakePhp中严格的标准错误?

时间:2014-03-18 11:13:55

标签: php apache cakephp

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

  

严格标准:在第62行的E:\ xampp \ htdocs \ projectname \ cake \ libs \ object.php中为类Object重新定义已定义的构造函数

     

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

提前致谢

2 个答案:

答案 0 :(得分:7)

E_STRICT警告是警告,而不是错误 - 知道问题是PHP 5.4+ specific

  

E_STRICT(整数)

     

启用PHP建议您的代码更改,以确保最佳   代码的互操作性和向前兼容性。

     

自PHP 5 以来,直到PHP 5.4.0才包含在E_ALL中

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

您可以使用多种选项,升级是最合适的选择。如果它是一个你正在维护活动的应用程序 - 最好升级到当前的稳定版(写作时为2.4),但如果情况不是/希望/可能 - 升级仍然< / em>最合适的解决方案:

升级到最新1.3

推荐

1.3.17是1.x发布周期中的最后一个版本。它与PHP 5.4兼容,并包含无数的bug和安全修复程序。它确实有some migration steps但它们通常不超过几分钟(或最多,几小时)工作。升级是一个简单的过程 - 只需下载新版本并替换cake文件夹。

升级到最新的1.2

容易

1.2.12是最后的1.2次要版本,并且还兼容php 5.4,升级到此版本不存在与现有应用程序代码兼容性问题的风险。升级是一个简单的过程 - 只需下载新版本并替换cake文件夹。

Silence E_STRICT警告自己

最简单(但也是hacky)

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

答案 1 :(得分:2)

似乎旧的CakePHP在较新版本的PHP上并不能很好地发挥作用。请看这里:http://i.justrealized.com/2009/cakephp-php-deprecated-error-warning/

请注意,不推荐使用CakePHP 1.2。如果你想坚持1.x版本,建议使用至少1.3,因为与1.2没有重大差异。

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