LoginSignup
1
0

More than 3 years have passed since last update.

フレームワーク内にちりばめられた composer を実行して回るワンライナー【Linux, composer, php】

Last updated at Posted at 2019-09-10

TL;DR

カレントディレクトリ以下のcomposer.jsonを探してcomposerを実行するワンライナー
find . -name composer.json -exec cd `dirname {}` \; -exec composer install \;

検証環境

ホストOS: Windows10
ゲストOS: CentOS Linux releaase 7.6 1810 (Core)
VituralBox: 5.2.28
Vagrant: 2.2.0
apache2(httpd): 2.4.6 (CentOS)
PHP: 5.6.38
Composer: 1.9.0
bash: 4.2.46(2)

解説

  1. find . -name composer.json で、カレントディレクトリ(.)以下からファイル名composert.jsonを探します。
  2. find コマンドのオプション -exec によって、検索結果のパスが入った変数(?) {} が1行ずつ展開され、dirnameコマンドで composer.json ファイルが入っているディレクトリへのパスが取得されます。
  3. dirnameコマンドの結果で得られたディレクトリへ cd します。
  4. find コマンドの -exec オプションは、\; をつけることで、次の -exec オプションに継続させることができるので、cd した先のディレクトリで composer install を実行します。
  5. find で発見したファイルのあるディレクトリすべてで composer install が実行されます。

composer installcomposer i と略記できるので、可読性が気にならない場合は略記することが可能です。

おわりに

fuelPHP を使っているプロジェクトに参加しているのですが、仮想環境にプログラムを展開したとき、ソースの各地に散らばる composer.json を蹴って回るのがめんどくさいので全力で手を抜くために頑張りました。
Laravel などでも同じことが利用できるかもしれません。お役に立てれば幸甚です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0