win10+wsl+docker 安装php-cs-fix后无法加载所有内置规则

背景

由于种种原因,想在家中Windows10搭建开发环境已解决每天下班不背电脑(Mac Air M1)回家健身的烦恼(毕竟入伏了)。
Mac中开发hyperflaravel均使用 phpstanphp-cs-fixer, 都能正常运行。
以此为背景

过程

安装docker,编译扩展,升级composer,配置phpstrom均无问题,phpstan已经能正常提示,启动服务,操作MySQLRedis 均正常的情况下,php-cs-fixer的进程一直意外退出,遂在 termial 中手动执行demo命令

php vendor/bin/php-cs-fixer –config=.php-cs-fixer.php fix app/Controller/

发现问题,如图所示:
问题图片

经查询源码, 使用symfony/finder:v6.0.19加载vendor/friendsofphp/php-cs-fixer/src/RuleSet/Sets/目录下所有文件,并于配置规则进行匹配,源码如图 图中红框为异常位置

故进行debug

Debug

第一次

前车之鉴: Mac环境使用 orbstack 搭建,之前有次更新后无法识别vendor目录下的所有文件,但文件能正常挂载,尝试升级 orbstack 以解决。(当时也折腾坏了,上午更新了100M+,之后便不行了,到下午2点左右又有一个7M左右的小更新,再更新又好了)
后车之师:ok fine, 更新docker吧(虽然是刚刚从官网下载的)

Current version: 4.31.1 (153621)
New version: 4.32.0 (157355)
Download size: 477.8 MB

发现下载不了,它提示download后一直0%,然后就没然后了….虽然有梯子…但….

第二次

既然环境有问题,重新编译总可以了吧,至少2次重新编译php后,我放弃了

第三次

你🐂🍺,我换镜像。 于是乎从 php:8.0.30-fpm-alpine 更换为 hyperf/hyperf:8.0-alpine-v3.13-swoole, 依旧不行

第四次

我换框架总好了吧,composer create-project laravel/laravel laravel_demo,欸,不对你没有装php-cs-fixer,好的,我自己装 composer require --dev friendsofphp/php-cs-fixer, 不行

第五次

怀疑docker挂载问题,遂修改代码,打印看效果,如图

可以看出,scandir扫描出这么些个文件, 而Finder仅仅只有 6 个。
更换了框架laravel:9.*.*,依旧如此。

第六次

文件访问权限、结束符crlf等等全查了,没有发现问题(或者我没想到?),就这6个文件,一气之下我自己补了一个文件,然后惊喜就出现了

虽然它新增的不是我新增的,但好歹新增了啊,于是就有了aaa01.phpaaa02.phpaaa57.php….
然后不报错了,但进度一直为0%,如图。并无其他输出。

第七次

由于该目录 /www (暂叫www吧,毕竟我也换过挂载目录…都一样) 为windows(wsl2)挂载的目录,鉴于windows环境一贯的尿性,我把整个项目复制到了非挂在目录 mkdir /dddd && cp -R /www/demo /dddd, 然后在/dddd目录下执行,您猜怎么着~

提问

我简单翻了翻 php-cs-fixer 的文档和 symfony/finder的文档和issue,没发现类似的问题,那么实际开发项目肯都还是在挂载的目录里面进行的。请问社区各位大佬,有没什么好点的建议,让我对win10没死的心凉个透?

讨论数量: 2

你最后不是没问题么

7个月前 评论
hhhhkkk (楼主) 7个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!