如何配置Vim中的Phpactor以识别非PSR规范的旧PHP代码类?
解决Phpactor识别非PSR规范PHP类的方法
以下是几个实用方案,帮你让Phpactor兼容旧项目里的非规范类:
1. 配置类与文件的映射规则
在项目根目录创建或编辑.phpactor.json文件,通过class_mappings字段直接指定类名到文件路径的对应关系,适合零散的非规范类:
{ "class_mappings": { "OldNonPsrClass": "./src/legacy/old-class.php", "AnotherLegacyClass": "./lib/another-old-file.php" } }
2. 自定义自动加载脚本
如果有大量遵循自定义命名规则的类,可以写一个自定义autoloader脚本,然后让Phpactor加载它:
- 新建
phpactor-custom-autoload.php,示例逻辑:
<?php spl_autoload_register(function ($className) { // 根据项目实际规则编写类到文件的映射逻辑 $file = __DIR__ . '/legacy/' . $className . '.php'; if (file_exists($file)) { require $file; } });
- 在
.phpactor.json里指定加载这个文件:
{ "autoload": { "files": ["./phpactor-custom-autoload.php"] } }
3. 添加额外的源码扫描路径
如果非规范类都集中在某个目录,直接把该目录加入Phpactor的源码扫描路径:
{ "source_paths": [ "./src", "./legacy", "./lib" ] }
Phpactor会扫描这些目录下的所有PHP文件,尝试识别类。
4. 忽略特定类的报错
如果某些类确实无法通过上述方法识别,可以配置Phpactor忽略对应的“无法找到类”警告:
{ "diagnostic": { "ignore": [ "Phpactor\\ClassFinder\\Exception\\CouldNotFindClass:OldNonPsrClass", "Phpactor\\ClassFinder\\Exception\\CouldNotFindClass:AnotherLegacyClass" ] } }
内容的提问来源于stack exchange,提问作者Drupal Development Costa Rica
相关产品推荐
相关产品推荐

