这么多人在将3.4.13更新为3.6 cakephp后弃用了

Jer*_*ler -5 cakephp cakephp-3.0

s0o许多弃用的错误?

如何解决这个?

不推荐使用(16384):不推荐使用Cake\Cache\Cache :: config().请改用setConfig()/ getConfig(). - E:\ xampp\htdocs\cakephp\config\bootstrap.php,第136行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):不推荐使用Cake\Datasource\ConnectionManager :: config() .请改用setConfig()/ getConfig().- E:\ XAMPP\htdocs中\ cakephp的\配置\ bootstrap.php中,线:137 [CORE\SRC \核心\的functions.php,线305]已过时(16384):电子邮件的使用蛋糕\邮递员\代替蛋糕\网络\电子邮件\电子邮件. - E:\ xampp\htdocs\cakephp\vendor\composer\ClassLoader.php,行:444 [CORE\src\Core\functions.php,第305行]不推荐使用(16384):不推荐使用Email :: configTransport().请改用Email :: setConfigTransport()或Email :: getConfigTransport(). - E:\ xampp\htdocs\cakephp\config\bootstrap.php,第138行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):不推荐使用Cake\Mailer\Email :: config() .请改用setConfig()/ getConfig(). - E:\ xampp\htdocs\cakephp\config\bootstrap.php,第139行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):不推荐使用Cake\Log\Log :: config() .请改用setConfig()/ getConfig().- E:\ XAMPP\htdocs中\ cakephp的\配置\ bootstrap.php中,线:140 [CORE\SRC \核心\的functions.php,线305]已过时(16384):安全::盐()被弃用.请改用Security :: getSalt()/ setSalt(). - E:\ xampp\htdocs\cakephp\config\bootstrap.php,第141行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):使用Cake\Http\ServerRequest而不是Cake\Network \请求. - E:\ xampp\htdocs\cakephp\vendor\composer\ClassLoader.php,行:444 [CORE\src\Core\functions.php,第305行]不推荐使用(16384):不推荐使用ServerRequest :: createFromGlobals().请 Cake\Http\ServerRequestFactory改用. - E:\ xampp\htdocs\cakephp\webroot\index.php,第35行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):使用Cake\Http\Response而不是Cake\Network \响应. - E:\ xampp\htdocs\cakephp\vendor\composer\ClassLoader.php,行:444 [CORE\src\Core\functions.php,第305行]不推荐使用(16384):不推荐使用Dispatcher.您应该更新您的应用程序以使用Http\Server实现. - E:\ xampp\htdocs\cakephp\webroot\index.php,第37行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):不推荐使用ActionDispatcher :: addFilter().这仅适用于向后兼容DispatchFilters - E:\ xampp\htdocs\cakephp\vendor\cakephp\cakephp\src\Http\ActionDispatcher.php,第61行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):不推荐使用ActionDispatcher :: addFilter().这仅适用于向后兼容DispatchFilters - E:\ xampp\htdocs\cakephp\vendor\cakephp\cakephp\src\Http\ActionDispatcher.php,第61行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):不推荐使用ActionDispatcher :: addFilter().这仅适用于向后兼容DispatchFilters - E:\ xampp\htdocs\cakephp\vendor\cakephp\cakephp\src\Http\ActionDispatcher.php,第61行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):不推荐使用ActionDispatcher :: addFilter().这仅适用于向后兼容DispatchFilters - E:\ xampp\htdocs\cakephp\vendor\cakephp\cakephp\src\Http\ActionDispatcher.php,第61行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):不推荐使用ServerRequest :: addParams().使用withParam()withAttribute("params", $params)代替. - E:\ xampp\htdocs\cakephp\vendor\cakephp\cakephp\src\Routing\Filter\RoutingFilter.php,第59行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):ServerRequest: :session()已弃用.请改用getSession().setter部分将被删除. - E:\ xampp\htdocs\cakephp\src\Controller\AppController.php,第120行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):App\Model\Table\UsersTable :: table ()已弃用.请改用setTable()/ getTable(). - E:\ xampp\htdocs\cakephp\src\Model\Table\UsersTable.php,第27行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):App\Model\Table\UsersTable: :不推荐使用displayField().请改用setDisplayField()/ getDisplayField(). - E:\ xampp\htdocs\cakephp\src\Model\Table\UsersTable.php,第37行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):App\Model\Table\UsersTable: :不推荐使用primaryKey().请改用setPrimaryKey()/ getPrimaryKey().- E:\ XAMPP\htdocs中\ cakephp的\ SRC \模型\表\ UsersTable.php,线:38 [CORE\SRC \核心\的functions.php,线305]已过时(16384):响应::发送()将是在4.0.0中删除 - E:\ xampp\htdocs\cakephp\vendor\cakephp\cakephp\src\Routing\Dispatcher.php,第72行[CORE\src\Core\functions.php,第305行]已弃用(16384) :将在4.0.0中删除 - E:\ xampp\htdocs\cakephp\vendor\cakephp\cakephp\src\Http\Response.php,行:494 [CORE\src\Core\functions.php,第305行]不推荐使用(16384):将在4.0.0中删除 - E:\ xampp\htdocs\cakephp\vendor\cakephp\cakephp\src\Http\Response.php,行:495 [CORE\src\Core\functions.php,line不推荐使用(16384):不推荐使用Response :: body().不推荐使用可变响应方法.使用withBody()getBody()替代. - E:\ xampp\htdocs\cakephp\vendor\cakephp\cakephp\src\Http\Response.php,line:502 [CORE\src\Core\functions.php,第305行]已弃用(16384):将被删除4.0.0 - E:\ xampp\htdocs\cakephp\vendor\cakephp\cakephp\src\Http\Response.php,line:502 [CORE\src\Core\functions.php,line 305]主页关于服务联系我们.注意(8):未定义的变量:flasharea [APP/Template\Layout\default.ctp,第325行]

不推荐使用(16384):不推荐使用App\Model\Table\WebsitesTable :: table().请改用setTable()/ getTable(). - E:\ xampp\htdocs\cakephp\src\Model\Table\WebsitesTable.php,第33行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):App\Model\Table\WebsitesTable: :不推荐使用displayField().请改用setDisplayField()/ getDisplayField(). - E:\ xampp\htdocs\cakephp\src\Model\Table\WebsitesTable.php,第34行[CORE\src\Core\functions.php,第305行]不推荐使用(16384):App\Model\Table\WebsitesTable: :不推荐使用primaryKey().请改用setPrimaryKey()/ getPrimaryKey(). - E:\ xampp\htdocs\cakephp\src\Model\Table\WebsitesTable.php,第35行[CORE\src\Core\functions.php,第305行]

bur*_*zum 12

  • 您没有阅读错误消息.它已经告诉你如何解决它.
  • 您没有检查更改日志,也没有检查迁移指南并对两个版本进行更新,从3.4跳到3.6.这很粗心.
  • 您没有费心去查看弃用警告的php手册.一个简单的谷歌搜索"php 16384"会带你到这个页面.
  • 您没有在此处搜索关于弃用警告的搜索

php手册解释了它:

用户生成的警告消息.这类似于E_DEPRECATED,除了它是使用PHP函数在PHP代码中生成的

E_DEPRECATED:

运行时通知.启用此选项可接收有关在将来版本中无法使用的代码的警告.

您的结论应该是您应该将代码更新为警告已建议您使用的新方法调用.您还应该考虑可能存在您无法直接控制的代码,例如插件,可能在某些时候需要新版本.因此,请确保您的依赖版本设置方式不会遇到麻烦.

为了将来修复您的个人工作流程:

  • 如果您不理解,请检查谷歌的错误代码/消息
  • 在进行不是未成员的更新时,请在考虑更新之前检查更改日志和迁移指南.最糟糕的情况是,更新会花费你比你更多的时间,特别是如果你没有费心去检查实际可能或明显会因为更改而爆炸的时间
  • 确保依赖项也适用于新版本

您仍然可以通过config禁用框架的通知:

// in config/app.php
'Error' => [
    'errorLevel' => E_ALL ^ E_USER_DEPRECATED
]
Run Code Online (Sandbox Code Playgroud)

请注意,这不会使它工作,它只是隐藏警告!

当被弃用的方法被删除时,你就搞砸了.因此,请提前计划,分配更新路线图中的代码所需的时间,并在您没有​​时间之前执行此操作,并由于某种原因被迫更新.