conocode
このコード
トラブルシューティング

swagger-php をインストールしたけど、vendor/bin/swagger が無い

Swagger-PHP を入れたんですけどvendor/bin/swagger が無いんです
バージョンが違うんじゃないの?

composer require zircote/swagger-php

でSwagger-PHP をインストールして、いつものように

vendor/bin/swagger

を実行しようと思ったら、そんなファイルありません、と言われました。

エラーの原因

どうやら Swagger-PHPのバージョンが3に上がったようで、構造が変わったみたいです。

2.x の時代に作ったものを使いたいので、以前と同じ構造が良いのですが。。。

エラーへの対処

3.xのしきたりに従えば良さそうなのですが、ちょっと時間がないので2.xに戻そうと思います。

まず、3.xを削除します。

composer remove zircote/swagger-php

削除できたら改めて、以前使用していたバージョン指定でインストール

composer require zircote/swagger-php:2.0.13

インストールが終わったら

vendor/bin/swagger

で無事実行できました。

記述に互換性があればバージョン3を使っても良いのですが、、、
時間が無いので後日調べてみます。

 

2019/1/9 追記
デファクトスタンダードだった Swagger は、OpenAPI と名前を変えてLinux foundation に移動したそうです。
ですので、バージョン3では記述その他がけっこう変わっているようなので、バージョン3を使う場合は Migrate する必要がありそうです。大変だ。