2016年2月9日火曜日

PHPDocumentorでInterface 'PHPParser_NodeVisitor' not foundが発生する。


原因はPHPDocumentorの依存するPHPParserがメジャーアップデートしている事が原因。

composer.jsonを以下のように追加する。

    "require-dev": {
        ......
        "phpdocumentor/phpdocumentor": "2.*",
        "nikic/php-parser": "1.*",
        ....
    },



これで解決。と思ったら新たな問題が。
1.x系ではエラーは出なくなったが上手くパッケージを読み込んでくれない。
正常動作しているケースのライブラリを調べると入っているのは0.9.5。

では0.9.*でやるかと思ったら、今度はLaravel5.2側が1.0以上を要求。。。

うーん、あっさりapiGenに切り替えよう。

http://www.apigen.org/

phpDocumentorは開発が止まっているし、apigenかな。


と思ったらまたいろいろと。
動くことは動いた。pharバージョンなら。。。

composerでインストールするとエラーの嵐。ネットで調べるとコンポーネントの衝突等のissueが出るわ出るわ。
4.x系になってから迷走が続いているようで。

まぁ、Laravelのパッケージ開発やると自ずとvendorディレクトリの中に山程パッケージがインストールされる。それらの整合性が問題を引き起こすわけで、なかなか難しいというか時間がかけれない。

自前のパッケージも増えたことだし、パッケージビルドはphpcsやphpunit, coverage等で止めて、ドキュメント生成用のブロジェクトを別途作って、まとめて自動生成するというのが正解かもしれない。







0 件のコメント:

コメントを投稿