自动判断命名空间依赖

最近在做项目解耦,并将项目通用的文件制作成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命令。

你可能感兴趣的:(自动判断命名空间依赖)