[發明專利]一種自動化定位命名空間引用問題的方法及裝置在審
| 申請號: | 202110099437.5 | 申請日: | 2021-01-25 |
| 公開(公告)號: | CN112905169A | 公開(公告)日: | 2021-06-04 |
| 發明(設計)人: | 張偉 | 申請(專利權)人: | 北京房江湖科技有限公司 |
| 主分類號: | G06F8/36 | 分類號: | G06F8/36;G06F8/33 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 苗曉靜 |
| 地址: | 101309 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 自動化 定位 命名 空間 引用 問題 方法 裝置 | ||
本發明提供一種自動化定位命名空間引用問題的方法及裝置,該方法包括:讀取檢測目錄下的代碼文件;獲取全路徑引用的第一命名空間;若某個第一命名空間對應的文件不存在則標記為異常引用;和/或,獲取相對路徑引用的第二命名空間,若某個第二命名空間不具有對應的引用聲明則標記為異常引用。本發明提供的自動化定位命名空間引用問題的方法及裝置,通過分別獲取通過全路徑引用的第一命名空間和通過相對路徑引用的第二命名空間,將文件不存在的第一命名空間和不具有引用聲明的第二命名空間標記為異常引用,可以將命名空間的引用問題在開發階段發現,便于提前發現問題,實現了自動化定位命名空間引用問題,提高了命名空間引用問題的檢測效率。
技術領域
本發明涉及計算機技術領域,尤其涉及一種自動化定位命名空間引用問題的方法及裝置。
背景技術
PHP在5.3開始引入了命名空間的概念,其作用是將PHP代碼按照一種虛擬的層次結構進行組織,這種結構類似于操作系統中文件系統的目錄結構。在通常的PHP開發中,除了使用自己的代碼以外,往往會使用很多其他的PHP組件。這些組件代碼可能會使用相同的類名、接口名、函數名或者常量名等,如果不使用命名空間就會導致命名沖突,使PHP執行出錯。而將代碼放到各自唯一的命名空間中,代碼就可以和其他開發者使用相同的類名、接口名、函數或者常量名等,這在團隊合作中相當重要。
但是在代碼開發過程中往往會存在代碼復制的行為,如果在復制時只復制了命名空間的使用代碼沒有復制命名空間的引用代碼時,則程序在運行時就會報命名空間找不到的錯誤。平時這種錯誤只能通過測試人員回歸發現,如果代碼的邏輯復雜分支多的話,無法保證所有的情況都能覆蓋,費時費力。而sonar等代碼掃描工具,只能進行靜態代碼檢查,對于代碼運行時的問題無法檢查。
發明內容
針對現有技術存在的問題,本發明提供一種自動化定位命名空間引用問題的方法及裝置。
本發明提供一種自動化定位命名空間引用問題的方法,包括:讀取檢測目錄下的代碼文件;對所述代碼文件進行如下處理,具體包括:獲取所述代碼文件中通過全路徑引用的第一命名空間;判斷所述第一命名空間對應的文件是否存在,若某個所述第一命名空間對應的文件不存在,則將相應所述第一命名空間標記為異常引用;和/或,獲取所述代碼文件中通過相對路徑引用的第二命名空間,判斷所述第二命名空間是否具有對應的引用聲明;若某個所述第二命名空間不具有對應的所述引用聲明,則將相應所述第二命名空間標記為異常引用。
根據本發明提供一種的自動化定位命名空間引用問題的方法,所述獲取所述代碼文件中通過全路徑引用的第一命名空間,具體包括:通過第一正則表達式獲取所述代碼文件中通過全路徑引用的第一命名空間;所述獲取所述代碼文件中通過相對路徑引用的第二命名空間,判斷所述第二命名空間是否具有對應的引用聲明,具體包括:通過第二正則表達式獲取所述代碼文件中通過相對路徑引用的第二命名空間的類名;基于所述類名,通過第三正則表達式判斷所述第二命名空間是否具有對應的所述引用聲明。
根據本發明提供的一種自動化定位命名空間引用問題的方法,所述方法還包括:若某個所述第二命名空間不具有對應的所述引用聲明,進一步判斷當前目錄下是否存在不具有所述引用聲明的所述第二命名空間的同名文件;若否,則將不具有所述引用聲明的所述第二命名空間標記為異常引用。
根據本發明提供的一種自動化定位命名空間引用問題的方法,所述方法還包括:若當前目錄下存在不具有所述引用聲明的所述第二命名空間的同名文件,則判斷所述同名文件中是否存在通過相對路徑引用的所述第二命名空間的類名;若否,則將所述不具有所述引用聲明的所述第二命名空間標記為異常引用。
根據本發明提供的一種自動化定位命名空間引用問題的方法,所述方法還包括:若經判斷獲知某個所述第二命名空間不具有所述引用聲明,則通過第四正則表達式進一步判斷所述類名是否是別名,若是,則獲取所述別名對應的真實名,并根據所述真實名判斷所述第二命名空間是否具有所述引用聲明。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京房江湖科技有限公司,未經北京房江湖科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110099437.5/2.html,轉載請聲明來源鉆瓜專利網。





