Upgrade Compatibility Tool則錯誤訊息

NOTE
Upgrade Compatibility Tool僅適用於Adobe Commerce執行個體。

此錯誤訊息參考提供執行Upgrade Compatibility Tool時可能發生之錯誤的相關資訊。

錯誤訊息會依層級(嚴重問題、錯誤和警告)和型別(核心程式碼、自訂程式碼和GraphQL結構描述)進行分類。 每種型別都包含下列資訊:

  • 錯誤碼: Adobe Commerce指派給錯誤訊息的識別碼。
  • 錯誤描述:摘要說明錯誤原因。
  • 錯誤建議動作:如果適用,提供疑難排解及解決錯誤的指引。

嚴重問題

核心程式碼

當某些核心檔案遺失或不符合原始檔案時,會報告這些錯誤。

錯誤碼
錯誤說明
建議的動作
2001
找不到核心檔案
從專案的根目錄執行composer install命令。
2002
核心檔案已修改
從專案的根目錄執行composer install命令。
2003
未安裝撰寫器相依性
缺少撰寫器相依性可能會導致問題。 執行composer require package_name以還原相依性。
2005
找不到核心資料夾
從專案的根目錄執行composer install命令。

自訂程式碼

當自訂程式碼參考目標Adobe Commerce版本中不存在的實體時,會發生嚴重錯誤。 當重要編碼標準被破壞時,也會報告這些錯誤。

錯誤碼
錯誤說明
建議的動作
1110
具現化不存在的Adobe Commerce類別/介面
更新程式碼以使用標籤為@api的類別。 正在具現化不存在的Adobe Commerce類別/介面。
1111
從不存在的Adobe Commerce類別延伸
擴充類別不再存在於程式碼基底中。 不建議透過繼承來擴充Adobe Commerce功能。 更新程式碼以使用標籤為@api的類別。
1112
匯入不存在的Adobe Commerce類別
更新程式碼以使用標籤為@api的類別。
1113
正在載入不存在的Adobe Commerce類別
更新程式碼以使用標籤為@api的類別。
1114
使用不存在的Adobe Commerce類別
更新程式碼以使用標籤為@api的類別。
1214
使用不存在的Adobe Commerce常數
請考慮改為在自訂程式碼中引進並使用必要值的私有常數。
1215
覆寫不存在的Adobe Commerce常數
請考慮改為在自訂程式碼中引進並使用必要值的私有常數。
1216
指派不存在的Adobe Commerce常數
請考慮改為在自訂程式碼中引進並使用必要值的私有常數。
1312
匯入不存在的Adobe Commerce介面
請考慮移除繼承,或使用自訂範圍中引進的介面來取代繼承。
1314
使用不存在的Adobe Commerce介面
請考慮移除繼承,或使用自訂範圍中引進的介面來取代繼承。
1317
繼承不存在的Adobe Commerce介面
請考慮移除繼承,或使用自訂範圍中引進的介面來取代繼承。
1318
實作不存在的Adobe Commerce介面
請考慮移除繼承,或使用自訂範圍中引進的介面來取代繼承。
1410
呼叫不存在的Adobe Commerce方法
更新程式碼以使用標籤為@api的類別。
1514
使用不存在的Adobe Commerce屬性
更新程式碼以使用標籤為@api的類別。
1515
覆寫不存在的Adobe Commerce屬性
更新程式碼以使用標籤為@api的類別。
1516
指派不存在的Adobe Commerce屬性
更新程式碼以使用標籤為@api的類別。 如果屬性存取層級只能在單一類別中使用,請將屬性存取層級更新為私人。
5002
開啟PHP標籤必須是檔案中的第一個內容
在PHP開始標籤之前,請確定檔案中沒有內容。
5003
已棄用函式
使用錯誤訊息中建議的替代專案。 如果訊息未建議取代功能,則需要仔細檢閱以選取替代功能或實施。
5005
PHP語法錯誤
必須更新程式碼以符合PHP語法標準。
5072
可能違反Magento2設計。 偵測到典型的Magento1.x建構
更新建構以Magento2標準。
5076
無法在名稱空間中使用,因為名稱空間是保留的,因為PHP 7是
以非保留關鍵字取代名稱空間中的保留字。
5077
因為類別名稱是保留名稱,所以無法使用,因為PHP 7是保留名稱
以非保留名稱取代保留的類別名稱。

資料庫結構描述

如果自訂限制參考已移除的核心資料表或資料行,則會報告DB Schema嚴重問題。

錯誤碼
錯誤說明
建議的動作
7009
自訂條件約束正在參照已在目標版本中移除的核心表格
移除限制或更新參照表格和參照欄屬性
7010
自訂限制正在參考已從目標版本中移除的核心欄
移除限制或更新referenceColumn屬性

GraphQL結構描述

如果結構描述專案不存在於目標版本中,則會引發GraphQL結構描述嚴重問題。

錯誤碼
錯誤說明
建議的動作
3101
型別已移除
列出參照此欄位的所有查詢。 檢查自訂實施是否使用這些查詢。 更新使用者端代碼以處理變更的查詢介面。
3102
從聯合移除的型別
如果在GraphQL請求建構或回應處理實作中使用聯合型別,則可能需要更新。
3103
欄位已移除
檢查自訂程式碼基底中是否參考欄位。 調整實作以正確處理新欄位型別。
3105
已移除實作的介面
檢查自訂中是否使用實作已移除介面的型別。 如果實作依賴已移除的介面,則可能需要更新實作。
3106
從列舉中移除的值
如果移除的列舉值用於GraphQL要求建構或回應處理實作,則可能需要更新。
3107
引數已移除
檢查自訂程式碼基底中是否使用欄位。 移除此欄位的引數。
3109
指示詞已移除
檢查指示詞是否用於自訂程式碼基底中。 調整實作以移除指示詞的參照。
3110
指示詞引數已移除
檢查指示詞是否用於自訂程式碼基底中。 移除指示詞引數。
3111
已移除可重複的指令
檢查指示詞是否用於自訂程式碼基底中。 調整實作以處理介面變更。
3112
指示位置已移除
檢查指示詞是否用於自訂程式碼基底中。 調整實作以處理介面變更。
3201
型別已變更的種類
列出參照此欄位的所有查詢。 檢查自訂實施是否使用這些查詢。 更新使用者端代碼以處理變更的查詢介面。
3203
欄位已變更型別
檢查自訂程式碼基底中是否參考欄位。 調整實作以正確處理新欄位型別。
3207
引數已變更的種類
檢查自訂程式碼基底中是否使用欄位。 更新此欄位的引數型別。
3303
已新增必要的輸入欄位
如果包含此欄位的查詢用於自訂,則應將欄位新增到請求中。
3307
必要的引數已新增
檢查自訂程式碼基底中是否使用欄位。 使用欄位時,應指定新的必要引數。
3310
必要的指示詞引數已新增
檢查指示詞是否用於自訂程式碼基底中。 新增指示詞引數。

錯誤次數

自訂程式碼

當自訂程式碼使用未考慮/標籤為@api的Adobe Commerce進入點時,會引發自訂程式碼錯誤。 無法保證這類進入點的保留行為。 自訂應該依賴@api進入點。 升級後,應該測試基於非API Adobe Commerce程式碼的功能。 當主要編碼標準被破壞時,也會報告這些錯誤。

錯誤碼
錯誤說明
建議的動作
1104
使用繼承API介面的非API類別
未標示為@api的類別可能會變更。 請考慮更新程式碼以依賴標示為@api的介面。 否則,依賴此實作的功能應在升級後進行測試。
1121
從非Adobe Commerce API類別擴充
擴充類別不再存在於程式碼基底中。 不建議透過繼承來擴充Adobe Commerce功能。 更新程式碼以使用標籤為@api的類別。
1122
匯入非Adobe Commerce API類別
擴充類別不再存在於程式碼基底中。 更新程式碼以使用標籤為@api的類別。 否則,依賴此實作的功能應在升級後進行測試。
1123
正在載入非Adobe Commerce API類別
擴充類別不再存在於程式碼基底中。 更新程式碼以使用標籤為@api的類別。 否則,依賴此實作的功能應在升級後進行測試。
1124
使用非Adobe Commerce API類別
擴充類別不再存在於程式碼基底中。 更新程式碼以使用標籤為@api的類別。 否則,依賴此實作的功能應在升級後進行測試。
1224
使用非Adobe Commerce API常數
未標示為@api的常數可能會變更。 請考慮改為在自訂程式碼中引進並使用必要值的私有常數。
1225
覆寫非Adobe Commerce API常數
未標示為@api的常數可能會變更。 請考慮改為在自訂程式碼中引進並使用必要值的私有常數。
1226
指派非Adobe Commerce API常數
未標示為@api的常數可能會變更。 請考慮改為在自訂程式碼中引進並使用必要值的私有常數。
1322
匯入的非Adobe Commerce API介面
未標示為@api的介面可能已變更。 請考慮移除此繼承,或將其取代為標示為@api的Adobe Commerce介面的繼承,或是自訂程式碼範圍中匯入的介面。
1324
使用的非Adobe Commerce API介面
未標示為@api的介面可能已變更。 請考慮移除此繼承,或將其取代為標示為@api的Adobe Commerce介面的繼承,或是自訂程式碼範圍中匯入的介面。
1327
繼承的非Adobe Commerce API介面
未標示為@api的常數可能會變更。 請考慮改為在自訂程式碼中引進並使用必要值的私有常數。
1328
實作非Adobe Commerce API介面
未標示為@api的介面可能已變更。 請考慮移除此繼承,或將其取代為標示為@api的Adobe Commerce介面的繼承,或是自訂程式碼範圍中匯入的介面。
1420
具現化非Adobe Commerce API類別/介面
未標示為@api的類別可能會變更。 請考慮更新程式碼以依賴標示為@api的介面。 否則,依賴此實作的功能應在升級後進行測試。 此外,擷取類別執行個體的建議方式是使用DI。 如果需要類別的新執行個體,請考慮使用工廠。
1428
實作詳細資料的可能相依性。
未標示為@api的類別可能會變更。 請考慮更新程式碼以依賴標示為@api的介面。 否則,依賴此實作的功能應在升級後進行測試。
1429
呼叫非Adobe Commerce API方法
未標示為@api或未在API類別/介面中宣告的方法可能會變更。 即使在新版本中未更新方法的介面,其行為或輸出也可能會不同。 考慮依賴介面方法。 否則,依賴此實作的功能應在升級後進行測試。
1449
呼叫非介面方法(存在於實作中)
未在介面中宣告的方法可能會變更。 考慮依賴介面方法。 否則,依賴此實作的功能應在升級後進行測試。
1524
使用非Adobe Commerce API屬性
未標示為@api之屬性的值可能會變更。 請考慮改用API介面方法。
1525
覆寫非Adobe Commerce API屬性
未標示為@api之屬性的值可能會變更。 請考慮改用API介面方法。
1526
指派非Adobe Commerce API屬性
未標示為@api之屬性的值可能會變更。 請考慮改用API介面方法。
5004
已棄用沒有引數的函式
傳遞輸入以驗證為函式的第一個引數。
5007
不建議使用某些函式
請避免使用這些函式。
5009
範本指令不能叫用方法。 只允許純量陣列存取
從範本移除方法引動過程。
5010
範本@vars註解區塊包含無效的JSON
修正無效的JSON。
5011
範本@vars註解區塊包含無效的標籤
修正無效的標籤。
5012
範本@vars註解區塊遺漏範本中使用的變數
將缺少的變數新增@vars註解區塊。
5013
避免使用帶有非void html元素的自我關閉標籤
請改用關閉標籤。
5014
"active"屬性已過時
使用中模組清單是在部署設定中定義的。
5015
<param>節點已過時
請改用<argument name="..." xsi:type="...">
5016
<instance>節點已過時
請改用<argument name="..." xsi:type="object">
5017
<array>節點已過時
請改用<argument name="..." xsi:type="array">
5018
<item key="...">節點已過時
請改用<item name="..." xsi:type="...">
5019
<value>節點已過時
請改為提供實際值作為文字常值。
5020
過時的節點: <supported_blocks>
將取代為<supported_containers>
5021
過時的節點: <block_name>
將取代為<container_name>
5022
偵測到工廠名稱
Widget型別不應以/開頭。
5023
線上上偵測到過時的ACL結構
請檢視lib/internal/Magento/Framework/Acl/etc/acl.xsd。
5024
線上上偵測到過時的功能表結構
請檢視app/code/Magento/Backend/etc/menu.xsd。
5025
在檔案中偵測到過時的系統組態結構
請檢視app/code/Magento/Config/etc/system_file.xsd。
5026
不要使用"text/javascript"型別屬性
僅使用公用成員。
5028
在phtml範本中,Block類別的受保護和私用成員的存取權已過時
僅使用公用成員。
5031
包含過時的方法
請改用getConnection()方法。
5042
PHP類別參考的格式不正確
檢查是否僅使用駝峰式大小寫字母、數字和正斜線來參考類別。
5043
模組參考的格式不正確
檢查是否僅使用字母、數字、底線及前導斜線來參考模組。
5044
類別Zend_Db_Select已受限制
建議的取代: \Magento\Framework\DB\Select
5045
類別Zend_Db_Adapter_Pdo_Mysql已受限制
建議的取代: \Magento\Framework\DB\Adapter\Pdo\Mysql
5046
類別Magento\Framework\Serialize\Serializer\Serialize已受限制
建議的取代: Magento\Framework\Serialize\SerializerInterface
5047
類別ArrayObject已受限制
建議的取代:自訂類別,使用覆寫的序列化/非序列化方法從ArrayObject擴充。
5048
類別Magento\Framework\View\Element\UiComponent\ArrayObjectFactory已受限制
建議的取代:建立自訂類別的Factory,使用覆寫序列化/非序列化方法從ArrayObject延伸。
5050
正在參考的區塊已移除
移除對區塊的參照。
5051
output="toHtml"已過時
使用output="1"
5052
類別\Magento\Framework\View\Element\Text\ListText不應再用於配置中
從配置移除類別\Magento\Framework\View\Element\Text\ListText
5053
不允許透過配置指示<action>呼叫方法
避免在<action>中使用違規方法。
5054
helper屬性包含/
移除helper屬性中的/
5055
helper屬性不包含::
::新增至Helper屬性。
5056
安裝指令碼已過時
在模組的etc/db_schema.xml檔案中使用宣告式結構描述方法。
5057
InstallSchema指令碼已過時
在模組的etc/db_schema.xml檔案中使用宣告式結構描述方法。
5058
InstallData指令碼已過時
使用模組設定/修補/資料目錄中的資料修補程式方法。
5059
安裝指令碼已過時
在模組的Setup資料夾中建立類別InstallData。
5060
升級指令碼已過時
在模組的etc/db_schema.xml檔案中使用宣告式結構描述方法。
5061
UpgradeSchema指令碼已過時
在模組的etc/db_schema.xml檔案中使用宣告式結構描述方法。
5062
UpgradeData指令碼已過時
使用模組設定/修補/資料目錄中的資料修補程式方法。
5063
升級指令碼已過時
使用模組設定/修補/資料目錄中的資料修補程式方法。
5064
循環指令碼已過時
在模組的Setup資料夾中建立類別循環。
5065
'data'在無效的目錄中
在模組的Setup/Patch/Data資料夾中建立資料修補程式,以進行資料升級,或在模組的etc/db_schema.xml檔案中使用宣告式結構描述方法以進行結構描述變更。
5066
'sql'在無效的目錄中
在模組的Setup/Patch/Data資料夾中建立資料修補程式,以進行資料升級,或在模組的etc/db_schema.xml檔案中使用宣告式結構描述方法以進行結構描述變更。
5067
XPath識別的節點已過時
應更新錯誤中指出的過時XML。 按照錯誤訊息的建議進行。
5068
指示詞{{htmlescape}}已過時
請改用{{var}}
5069
指示詞{{escapehtml}}已過時
請改用{{var}}
5070
getChildHtml()不再需要第三個引數
從對getChildHtml()的呼叫移除第3個引數。
5071
getChildHtml()不再需要第4個引數
從對getChildHtml()的呼叫移除第4個引數。
5073
含有斜線的舊式表格名稱必須固定至直接表格名稱
請改用直接資料表名稱。
5075
應用程式模組不應使用來自測試模組的類別
從測試模組中移除類別的使用情況。
5078
類別必須在建構函式中要求,否則編譯器將無法尋找及產生這些類別
將類別新增至建構函式。
5079
不建議使用變數類別變數
避免使用'var'來宣告類別變數。
5080
偵測到可能的原始SQL陳述式
請改用存放庫或資料修補程式。
5081
不建議在範本中使用協助程式
請改用ViewModel。
5082
不建議在範本中使用$this
請改用$block。
5083
不允許以常數作為轉譯函式的第一個引數
請改用字串常值。
5085
不建議使用某些函式
請改用訊息上建議的替代函式。
5087
PHP跨版本相容性問題
請依照訊息的建議來檢查移轉指南
5088
在必要引數之後找到選用引數
將必要引數移至選用引數之後。
5089
找到方法可見性final private
將方法可見性從final private變更為只有private
5090
魔術方法__set_state未定義為static
魔術方法__set_state必須定義為static
5091
具有__toString()方法的類別未從Stringable介面繼承
使用__toString()方法將Stringable介面新增至類別。
5092
is_resource()方法用於現在傳回Object的函式
is_resource()變更為instanceof物件。
6001
jQuery.andSelf()已移除
使用jQuery.addBack()
6002
jQuery $.bind$.unbind已過時
請改用$.on$.off
6003
訂閱事件的jQuery方法已過時,不應使用
請改用.on("event name", fn)方法來訂閱該事件。
6003
用於觸發事件的jQuery方法已過時,不應使用
請改用.trigger("event name")方法來觸發該事件。
6004
jQuery $.delegate$.undelegate已過時
請改用$.on$.off
6005
(jQuery.load() / jQuery.unload() / jQuery.error())已移除
請改用(.on("load", fn) / .on("unload", fn) / .on("error", fn))。
6006
jQuery.size()已移除
使用jQuery.length
6007
jQuery.trim已棄用
使用String.prototype.trim
6008
addButtonaddContextToolbaraddMenuItemaddSidebarfile_browser_callbackinsert_button_items, 'inlite'主題, 'mobile'主題, 'modern'主題)已移除
更新程式碼以與tinymce5相容。
6009
jQuery.isFunction()已棄用
在大多數情況下,它可由[typeof x===「函式」]取代。
6009
jQuery.type()已棄用
取代為適當的型別檢查,例如[typeof x === "function"]。
6009
jQuery.isArray()已棄用
請改用原生Array.isArray方法。
6009
jQuery.parseJSON()已棄用
若要剖析JSON字串,請改用原生JSON.parse方法。
6010
(jQuery.expr[":"]jQuery.expr.filters)已過時
請改用jQuery.expr.pseudos。

資料庫結構描述

如果在目標Adobe Commerce版本中新增或移除的資料庫表格、資料行、索引或條件約束,可能會導致與自訂資料庫綱要衝突,則會引發「資料庫綱要」錯誤。

錯誤碼
錯誤說明
建議的動作
7001
目標核心版本引入的表格與自訂模組宣告的表格同名
使用新的核心表格(如果適用)或重新命名自訂表格
7002
由自訂模組擴充的核心表格已在目標版本中移除
所有已移除的核心表格參考應從程式碼基底中移除
7003
目標核心版本引入的欄與自訂模組宣告的欄同名
使用新的核心欄(如果適用)或重新命名自訂欄
7004
自訂模組擴充的核心欄已在目標版本中移除
所有已移除的核心欄參考應從程式碼基底中移除
7005
目標核心版本引入的索引與自訂模組宣告的索引具有相同的referenceId
移除(如果與引入的核心索引重複)或重新命名自訂索引
7006
自訂模組擴充的核心索引已在目標版本中移除
所有移除的核心索引參考應該從程式碼基底中移除
7007
目標核心版本會引入與自訂模組宣告之限制同名的限制
移除(如果與引入的核心限制重複)或重新命名自訂限制
7008
自訂模組擴充的核心限制已在目標版本中移除
使用新的核心限制(如果適用)或重新命名自訂限制

警告

核心程式碼

當核心程式碼基底中有輕微不一致時,系統會報告這些警告。

錯誤碼
錯誤說明
建議的動作
2004
Composer相依性版本不符
問題表示標準設定中的Composer相依性版本與實際專案不同。 執行composer update <package_name>以更新相依性。

自訂程式碼

偵測到參考已棄用的程式碼時,會引發自訂程式碼警告。 這類參照應以支援的擴充點取代。 請注意Recommendations已棄用專案的@see註解。 當次要編碼標準被破壞時,也會報告這些錯誤。

錯誤碼
錯誤說明
建議的動作
1131
從Adobe Commerce @deprecated類別延伸
擴充類別將在未來版本中移除。 不建議透過繼承來擴充Adobe Commerce功能。 更新程式碼以使用標籤為@api的類別。
1132
正在匯入Adobe Commerce @deprecated類別
擴充類別將在未來版本中移除。 請考慮改用標示為@api的Adobe Commerce類別。
1133
正在載入Adobe Commerce @deprecated類別
擴充類別將在未來版本中移除。 請考慮改用標示為@api的Adobe Commerce類別。
1134
使用Adobe Commerce @deprecated類別
擴充類別將在未來版本中移除。 請考慮改用標示為@api的Adobe Commerce類別。
1234
使用Adobe Commerce @deprecated常數
即將推出的版本將會移除已遭取代的常數。 請考慮改用實作中標示為@api的常數或私用常數。
1235
正在覆寫Adobe Commerce @deprecated常數
即將推出的版本將會移除已遭取代的常數。 請考慮改用實作中標示為@api的常數或私用常數。
1236
指派Adobe Commerce @deprecated常數
即將推出的版本將會移除已遭取代的常數。 請考慮改用實作中標示為@api的常數或私用常數。
1332
已匯入Adobe Commerce @deprecated介面
即將推出的版本將會移除已棄用的介面。 請考慮改用標示為@api的介面或類別。
1334
已使用Adobe Commerce @deprecated介面
即將推出的版本將會移除已棄用的介面。 請考慮改用標示為@api的介面或類別。
1337
繼承自Adobe Commerce @deprecated介面
即將推出的版本將會移除已棄用的介面。 請考慮改用標示為@api的介面或實作中匯入的介面來移除介面繼承。
1338
實作Adobe Commerce @deprecated介面
即將推出的版本將會移除已棄用的介面。 請考慮改用標示為@api的介面或實作中匯入的介面來移除介面繼承。
1430
呼叫未宣告的資料物件方法
未宣告的魔術方法可能會變更。 請考慮改為依賴介面方法。
1439
呼叫Adobe Commerce @deprecated方法
即將推出的版本將會移除已棄用的方法。 請考慮改為依賴API介面中宣告的方法。
1440
方法簽章不符
使用不符合方法簽章的引數、引數或傳回型別偵測到呼叫或覆寫核心方法。
1534
使用Adobe Commerce @deprecated屬性
即將推出的版本將會移除已棄用的方法。 請考慮改為依賴API介面中宣告的方法。
1535
正在覆寫Adobe Commerce @deprecated屬性
即將推出的版本將會移除已棄用的屬性。 請考慮改為依賴API介面中宣告的方法,或使用實作中的私有屬性。
1536
指派Adobe Commerce @deprecated屬性
即將推出的版本將會移除已棄用的方法。 請考慮改為依賴API介面中宣告的方法。
5006
建構函式中絕不可明確要求代理和攔截器
原始類別應該宣告為建構函式引數的型別。 攔截器/Proxy類別將由架構相依性插入實作傳遞。
5074
使用已棄用的方法getResource()來偵測(儲存/載入/刪除)資料。
請使用存放庫。
5086
可視性未在常數上宣告
宣告所有常數的可見度。

GraphQL結構描述

將其他專案新增到新版本的結構描述時,會引發GraphQL結構描述警告。 建議您檢閱實作,以瞭解是否應將其用於請求。

錯誤碼
錯誤說明
建議的動作
3206
引數預設值已變更
如果自訂中使用查詢,可能必須明確指定引數值。
3302
新增到聯合的型別
型別已新增至聯集。 檢查處理傳回此聯合型別的查詢結果的實作,並確保其能夠處理新增的型別。
3304
已新增選用輸入欄位
已新增選用輸入欄位。 檢查實作以確保。
3305
已新增實作介面
欄位可接受/提供實施中可考量的詳細資訊。
3306
已新增至列舉的值
已將值新增至列舉。 如果使用者端在列舉值上包含switch陳述式,並且不包含預設大小寫,則此變更可能會導致非預期的行為。
3308
已新增選用引數
如果查詢在自訂中使用新引數,則可能需要將其新增到請求中。
recommendation-more-help
83a60e0e-8849-4685-a8cd-c129ecd795ea