我正在使用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服务器上?
我的项目需要尽快部署,希望有人能回答我的问题,非常感谢!
1条答案
按热度按时间vyu0f0g11#
为了回答你的问题,隐藏过时的错误是
functionally
的问题。我在一个运行在PHP 7.4上的遗留CakePHP 2.x项目上这样做。它们只是警告在未来的版本中将删除该功能(它不会影响现有的功能)。关于第二个问题,可能是因为你有不同的设置/PHP版本/框架版本。