自动判断命名空间依赖

最近在做项目解耦,并将项目通用的文件制作成composer包。需要选择性的对文件进行挪动和再封装。挪动过程中,文件中会有其他文件的依赖,如use  xxx(命名空间路径),一层一层文件下来各种嵌套,人工查找和迁移容易出错,故写了一个程序处理。

1.遍历指定文件夹下所有文件,打开文件。

2.读取文件内容,正则匹配到"use XXX;",则解析XXX路径为文件真实路径,由于项目使用命名空间都遵循psr-4规范,故按psr-4规则,替换头部命名空间为对应真实路径即可。

3.检测真实路径下的文件is_readable,不可读,则报错。可读则递归处理该文件。


改进:

1.如果A文件use B,B文件中又use A,这样下来会无限递归下去,故在处理类中增加一个静态变量,存放处理过的文件,从而减少了重复处理的现象,也避免了无限递归到最大深度,程序退出。

2.程序只是报出不存在的文件,还是需要人手动挪,故又加了一个方法,解析源路径和目标路径,exec一个cp命令。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容