phpは好きだけど、composerの仕組みはとっても嫌いな、ユゲタです。
composerは、複数のライブラリを一括インストールしてくれて、管理もしてくれるので、ありがたがっているエンジニアも多いと思いますが、
アホみたいに、ファイルをインストールされてしまうのが、とてつもなく嫌なんです。
どうせ、vendorフォルダを大事にしていればいいんだろうと思いがちですが、マジで数千(ヘタしたら数万)ファイルも作られて、こっちが期待していないライブラリも腐るほどたくさん放り込まれて、
こちとら、プログラミングを担保する商売をしているのに、そんな状態にされたら、何が不具合を出しているか管理しきれません。
エラーの話
さて、愚痴は、この辺にして、今回は、
twitteroauthライブラリをこれまで便利に使っていたんですが、
久しぶりにgitからcloneしてみたところ、composer対応しているようで、普通に実行したら、次のようなエラーが出やがります。
PHP Fatal error: Uncaught Error: Class 'Composer\CaBundle\CaBundle' not found in ./twitteroauth/src/TwitterOAuth.php:609
これは、どうやら、Composer\CaBundle\CaBundleというnamespace付きのクラスが無いというエラーのようですが、別のライブラリを参照しているようです。
composerでインストールするときに、composer.jsonに書き込めばいいらしいのですが、そもそも、composerの嫌いなユゲタは、そんな処理はしたくありません。
composerを使わない対応方法
この不足しているライブラリは、
https://github.com/composer/ca-bundle
どちらのgithubにちゃんと存在していました。
これをcloneして、twitteroauthをrequireする前に、こいつをrequireしてあげれば、問題は解決するようです。
事前にrequireですよ、この手順が逆だと正常に動作しません。
お困りの方、是非お試しあれ!
今回の感想
nodejsのnpm、phpのcomposer、linuxのyumやapt-get
色々なバージョン管理がありますが、どうもphpのcomposerだけは、個人的に肌に合いません。
実際にgoogleのPHPライブラリもcomposerで提供されているものも多く、非常に迷惑しています。
一生懸命標準化しようとしているPHP界隈もわからなくもないですが、手軽に扱える領域を減らしているということにも気がついてもらいたいですね。
あまりネットでこの意見が無いので、あえてネガティブですが、ブログに書いてみました。
0 件のコメント:
コメントを投稿