在CakePhp中隐藏过时的错误在功能上是好的吗?

kzipqqlq  于 2022-11-24  发布在  PHP
关注(0)|答案(1)|浏览(157)

我正在使用CakePHP 3.x(3.10.4)开发一个迷你cms项目
由于服务器PHP版本的限制,我使用了这样一个旧版本的CakePHP。
我在本地设备xampp服务器上进行开发时完全没有问题,但是,当我开始将应用程序部署到生产服务器并配置所有需求(如数据库、迁移等)时,我发现我的一个页面中出现错误,显示:

You are using a deprecated argument order for Cake\Validation\Validator::allowEmptyString. 
You should reverse the order of your `when` and `message` arguments so that they are `message, when`. 
- xxxxxxxxxxx/vendor/cakephp/cakephp/src/Validation/Validator.php, line: 871 
You can disable deprecation warnings by setting `Error.errorLevel` to `E_ALL & ~E_USER_DEPRECATED` in your config/app.php.

然后我对这个问题做了一点研究,发现应该是bin/bake问题(如果我错了,请告诉我),所以我只是按照错误消息中的建议将Error.errorLevel更改为E_ALL & ~E_USER_DEPRECATED,问题就没有了。
我有两个问题:
1.我知道这并不是一个好的做法,但是以这种方式隐藏过时的警告(或错误)在功能上是完全可以的?这会不会是一些隐藏的问题?
1.为什么这个过时的警告不显示在我的本地设备环境中,而是显示在生产xampp服务器上?
我的项目需要尽快部署,希望有人能回答我的问题,非常感谢!

vyu0f0g1

vyu0f0g11#

为了回答你的问题,隐藏过时的错误是functionally的问题。我在一个运行在PHP 7.4上的遗留CakePHP 2.x项目上这样做。它们只是警告在未来的版本中将删除该功能(它不会影响现有的功能)。
关于第二个问题,可能是因为你有不同的设置/PHP版本/框架版本。

相关问题