【技术实现步骤摘要】
一种自动化定位命名空间引用问题的方法及装置
[0001]本专利技术涉及计算机
,尤其涉及一种自动化定位命名空间引用问题的方法及装置。
技术介绍
[0002]PHP在5.3开始引入了命名空间的概念,其作用是将PHP代码按照一种虚拟的层次结构进行组织,这种结构类似于操作系统中文件系统的目录结构。在通常的PHP开发中,除了使用自己的代码以外,往往会使用很多其他的PHP组件。这些组件代码可能会使用相同的类名、接口名、函数名或者常量名等,如果不使用命名空间就会导致命名冲突,使PHP执行出错。而将代码放到各自唯一的命名空间中,代码就可以和其他开发者使用相同的类名、接口名、函数或者常量名等,这在团队合作中相当重要。
[0003]但是在代码开发过程中往往会存在代码复制的行为,如果在复制时只复制了命名空间的使用代码没有复制命名空间的引用代码时,则程序在运行时就会报命名空间找不到的错误。平时这种错误只能通过测试人员回归发现,如果代码的逻辑复杂分支多的话,无法保证所有的情况都能覆盖,费时费力。而sonar等代码扫描工具,只能进行静态 ...
【技术保护点】
【技术特征摘要】
1.一种自动化定位命名空间引用问题的方法,其特征在于,包括:读取检测目录下的代码文件;对所述代码文件进行如下处理,具体包括:获取所述代码文件中通过全路径引用的第一命名空间;判断所述第一命名空间对应的文件是否存在,若某个所述第一命名空间对应的文件不存在,则将相应所述第一命名空间标记为异常引用;和/或,获取所述代码文件中通过相对路径引用的第二命名空间,判断所述第二命名空间是否具有对应的引用声明;若某个所述第二命名空间不具有对应的所述引用声明,则将相应所述第二命名空间标记为异常引用。2.根据权利要求1所述的自动化定位命名空间引用问题的方法,其特征在于,所述获取所述代码文件中通过全路径引用的第一命名空间,具体包括:通过第一正则表达式获取所述代码文件中通过全路径引用的第一命名空间;所述获取所述代码文件中通过相对路径引用的第二命名空间,判断所述第二命名空间是否具有对应的引用声明,具体包括:通过第二正则表达式获取所述代码文件中通过相对路径引用的第二命名空间的类名;基于所述类名,通过第三正则表达式判断所述第二命名空间是否具有对应的所述引用声明。3.根据权利要求1所述的自动化定位命名空间引用问题的方法,其特征在于,所述方法还包括:若某个所述第二命名空间不具有对应的所述引用声明,进一步判断当前目录下是否存在不具有所述引用声明的所述第二命名空间的同名文件;若否,则将不具有所述引用声明的所述第二命名空间标记为异常引用。4.根据权利要求3所述的自动化定位命名空间引用问题的方法,其特征在于,所述方法还包括:若当前目录下存在不具有所述引用声明的所述第二命名空间的同名文件,则判断所述同名文件中是否存在通过相对路径引用的所述第二命名空间的类名;若否,则将所述不具有所述引用声明的所述第二命名空间标记为异常引用。5.根据权利要求2所述的自动化定位命名空间引用问题的方法,其特...
【专利技术属性】
技术研发人员:张伟,
申请(专利权)人:北京房江湖科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。