在将3.4.13更新为3.6 cakephp

时间:2018-04-17 11:37:32

标签: cakephp cakephp-3.0

s0许多弃用的错误?

如何解决这个问题?

  

不推荐使用(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 \ config \ bootstrap.php,第137行   [CORE \ src \ Core \ functions.php,第305行]不推荐使用(16384):使用   Cake \ Mailer \ Email而不是Cake \ Network \ Email \ Email。 -   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 \ config \ bootstrap.php,第140行   [CORE \ src \ Core \ functions.php,第305行]已弃用(16384):   不推荐使用Security :: salt()。使用Security :: getSalt()/ setSalt()   代替。 - E:\ xampp \ htdocs \ cakephp \ config \ bootstrap.php,第141行   [CORE \ src \ Core \ functions.php,第305行]不推荐使用(16384):使用   Cake \ Http \ ServerRequest而不是Cake \ Network \ Request。 -   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 \ Response。 -   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的\供应商\ CakePHP的\ CakePHP中的\ src \ HTTP \ ActionDispatcher.php,   line:61 [CORE \ src \ Core \ functions.php,第305行]已弃用(16384):   不推荐使用ActionDispatcher :: addFilter()。这只是可用的   与DispatchFilters向后兼容 -   E:\ XAMPP \ htdocs中\ CakePHP的\供应商\ CakePHP的\ CakePHP中的\ src \ HTTP \ ActionDispatcher.php,   line:61 [CORE \ src \ Core \ functions.php,第305行]已弃用(16384):   不推荐使用ActionDispatcher :: addFilter()。这只是可用的   与DispatchFilters向后兼容 -   E:\ XAMPP \ htdocs中\ CakePHP的\供应商\ CakePHP的\ CakePHP中的\ src \ HTTP \ ActionDispatcher.php,   line:61 [CORE \ src \ Core \ functions.php,第305行]已弃用(16384):   不推荐使用ActionDispatcher :: addFilter()。这只是可用的   与DispatchFilters向后兼容 -   E:\ XAMPP \ htdocs中\ CakePHP的\供应商\ CakePHP的\ CakePHP中的\ src \ HTTP \ ActionDispatcher.php,   line:61 [CORE \ src \ Core \ functions.php,第305行]已弃用(16384):   不推荐使用ServerRequest :: addParams()。使用withParam()或   而是withAttribute("params", $params)。 -   E:\ XAMPP \ htdocs中\ CakePHP的\供应商\ CakePHP的\ CakePHP中的\ src \路由\过滤器\ RoutingFilter.php,   line: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 \ Model \ Table \ UsersTable.php,行:38   [CORE \ src \ Core \ functions.php,第305行]已弃用(16384):   Response :: send()将在4.0.0中删除 -   E:\ XAMPP \ htdocs中\ CakePHP的\供应商\ CakePHP的\ CakePHP中的\ src \路由\ Dispatcher.php,   line:72 [CORE \ src \ Core \ functions.php,第305行]已弃用(16384):   将在4.0.0中删除 -   E:\ XAMPP \ htdocs中\ CakePHP的\供应商\ CakePHP的\ CakePHP中的\ src \ HTTP \ Response.php,   line:494 [CORE \ src \ Core \ functions.php,第305行]已弃用(16384):   将在4.0.0中删除 -   E:\ XAMPP \ htdocs中\ CakePHP的\供应商\ CakePHP的\ CakePHP中的\ src \ HTTP \ Response.php,   line:495 [CORE \ src \ Core \ functions.php,第305行]已弃用(16384):   不推荐使用Response :: body()。可变响应方法是   弃用。请改用withBody()getBody()。 -   E:\ XAMPP \ htdocs中\ CakePHP的\供应商\ CakePHP的\ CakePHP中的\ src \ HTTP \ Response.php,   line:502 [CORE \ src \ Core \ functions.php,第305行]已弃用(16384):   将在4.0.0中删除 -   E:\ XAMPP \ htdocs中\ CakePHP的\供应商\ CakePHP的\ CakePHP中的\ src \ HTTP \ Response.php,   line:502 [CORE \ src \ Core \ functions.php,第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行]

2 个答案:

答案 0 :(得分:9)

  • 您没有阅读错误消息。它已经告诉你如何解决它。
  • 您没有检查更改日志,也没有the migration guide并对两个版本进行更新,从3.4跳到3.6。这很粗心。
  • 您没有为check the php manual打扰弃用警告。一个简单的谷歌搜索" php 16384"会带你到这个页面。
  • 您没有在此处搜索关于弃用警告的搜索

php手册解释了它:

  

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

E_DEPRECATED:

  

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

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

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

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

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

// in config/app.php
'Error' => [
    'errorLevel' => E_ALL ^ E_USER_DEPRECATED
]

请注意,这不会让它发挥作用,只会隐藏警告!

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

答案 1 :(得分:0)

通过参考https://book.cakephp.org/3.0/en/appendices/3-6-migration-guide.html#disabling-deprecation-warnings

更新错误消息中明确说明的方法调用或禁用弃用警告报告