ovr / phpsa

Smart/Static Analyzer(sis) for PHP :bowtie::neckbeard:
Other
637 stars 77 forks source link

Some issues were closed and merged to master but i still can encounter those issues #356

Open armoour opened 6 years ago

armoour commented 6 years ago

Such as #286 , it was closed on 2016,but now i still can reproduce: Notice: Undefined property: PhpParser\Node\Expr\ArrayDimFetch::$name in C:\ProgramData\ComposerSetup\bin\vendor\ovr\phpsa\src\Analyzer\Pass\Statement\UnexpectedUseOfThis.php on line 186 Notice: It's not possible to fetch an array element on a non array in E:***** on 168 [language_error] unset($seatNewArr[$key]);**

armoour commented 6 years ago

And something is strange that my phpsa is 0.6.2,but the requirement for php is >=5.5(in composer.lock) while The README.MD is PHP>=7.0,it's very strange;

ddmler commented 6 years ago

@armoour version 0.6.2 is from december 2016 since then there was no new release, you have to use the master branch to fix this bug.

armoour commented 6 years ago

@ddmler According your advice i update my phpsa to dev-master, but i met a issue same as #353 , so is there any other solutions or workaround?

ddmler commented 6 years ago

The solution to that problem should be to copy the .phpsa.yml file from us into your projects root directory for now.

armoour commented 6 years ago

@ddmler I copied file .phpsa.yml from phpsa directory to my test project root path and then i ran phpsa check E:\* command, i got an error as below : Warning: preg_match(): Compilation failed: unknown property name after \P or \p at offset 14 in C:\ProgramData\ComposerSetup\bin\vendor\ovr\phpsa\src\Command\CheckCommand.php on line 106 ..... Notice: Undefined index: pCardNo(this arg is from my php class) in C:\ProgramData\ComposerSetup\bin\vendor\ovr\phpsa\src\Compiler\Expression\ArrayDimFetch.php on line 55**

ddmler commented 6 years ago

It seems that we have a bug in our file handling for windows. (your warning message) It uses any directory starting with p as the \p unicode category regex matcher. Try Linux or the unix subsystem for windows to fix this.