我正在使用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()
提前致谢
答案 0 :(得分:7)
E_STRICT警告是警告,而不是错误 - 知道问题是PHP 5.4+ specific:
E_STRICT(整数)
启用PHP建议您的代码更改,以确保最佳 代码的互操作性和向前兼容性。
自PHP 5 以来,直到PHP 5.4.0才包含在E_ALL中
你可以忽略它们(在采取措施阻止用户看到它们之后)。
您可以使用多种选项,升级是最合适的选择。如果它是一个你正在维护活动的应用程序 - 最好升级到当前的稳定版(写作时为2.4),但如果情况不是/希望/可能 - 升级仍然< / em>最合适的解决方案:
推荐
1.3.17是1.x发布周期中的最后一个版本。它与PHP 5.4兼容,并包含无数的bug和安全修复程序。它确实有some migration steps但它们通常不超过几分钟(或最多,几小时)工作。升级是一个简单的过程 - 只需下载新版本并替换cake文件夹。
容易
1.2.12是最后的1.2次要版本,并且还兼容php 5.4,升级到此版本不存在与现有应用程序代码兼容性问题的风险。升级是一个简单的过程 - 只需下载新版本并替换cake文件夹。
最简单(但也是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或更低以兼容