Skip to content
Mitsuru Mutaguchi edited this page Aug 31, 2023 · 22 revisions

Programing tips composer.

  • composer scriptsで定義されているコマンドを表示
    • composer run-script --list
  • composer.jsonのscripts定義は、./vendor/binにパスが通っている。そのため、省略できる。
    • windowsでもLinuxでもcomposer scriptsを実行させるには、省略して書く。./vendor/bin/phpcsと記載するとwindowsのpower shellではエラーになる

Ex Commonds

// composerコマンドでPHP_CodeSniffer実行(上記と同等)
composer phpcs
// or
php composer.phar phpcs

// composerコマンドで色付き(Only Linux)
composer phpcs -- --colors

関連ページ

phpcs

参考URL

composer自体のインストール

composerとは、PHPの依存管理ツールです。php版のyum, apt-getみたいなものです。

利用すると、phpライブラリのバージョンアップに伴う入れ替えが楽々です。

インストール

Windows

Manual DownloadのLatest Snapshotでcomposer.pharをダウンロードして配置

https://getcomposer.org/download/

Linux

コマンドでインストール。コマンドはリンク先を参照

https://getcomposer.org/download/

php.ini allow_url_fopen=0の時は、下記2行を-dオプションでphp_iniの値を指定する

php -d allow_url_fopen=1 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'ハッシュ値はcomposerのバージョン変わるたびに変わるので、https://getcomposer.org/download/を見てね') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

### カレントディレクトリにダウンロードする場合
php -d allow_url_fopen=1 composer-setup.php --1

### /usr/bin/composerとしてダウンロードする場合、composerコマンド利用可能になる (Only Linux)
php -d allow_url_fopen=1 composer-setup.php --install-dir=/usr/bin --filename=composer --1

php -r "unlink('composer-setup.php');"

Composerのメインリポジトリ

ComposerのメインリポジトリはPackagistです。
composer installcomposer updateをすると、Packagistを見て該当バージョンをダウンロードしてきます。

https://packagist.org/packages/laravel/laravel

ファイル説明

  • composer.json:composerの定義ファイル。これを基にダウンロードしてくる
  • composer.lock:composerでダウンロードしたバージョンを記録したファイル。これを共有することで、プロジェクトのメンバーと同一バージョンをそろえる事ができる

コマンド

// composer.jsonに記載されている内容、もしくはcomposer.lockに記載されている内容に従って、パッケージをインストールします

githubから最新のリリースバージョンを取得します。

$ php composer.phar install

// composer.jsonに記載されている内容で、本番運用で開発ライブラリ不要の時は--no-dev付ける

本番運用ならこっち。開発ライブラリ(phpunit等)を入れないバージョン

$ php -d allow_url_fopen=1 composer.phar install --no-dev

// 必須ライブラリの追加

$ composer require setasign/fpdi

// Out of memoryエラーの場合
$ php -d memory_limit=-1 composer.phar require setasign/fpdi

// composer update

$ composer update

// Out of memoryエラーの場合
$ php -d memory_limit=-1 composer.phar update

参考:composerのバージョニング

指定 対象のバージョン
2.0.5 2.0.5
2.0.* 2.0.0以上、2.1.0未満
2.* 2.0.0以上、3.0.0未満
^2.0.5 2.0.5以上、3.0.0未満
^0.2 0.2.0以上、0.3.0未満
^0.0.5 0.0.5以上、0.0.6未満
~1.3 1.3.0以上、2.0.0未満
~1.3.2 1.3.2以上、1.4.0未満
2.*@dev(開発バージョンも対象にする) 2.0.0-dev(例)
dev-master 1.0.0未満(開発中のバージョン)

参考:composerとnpmのバージョニング

constraint composer npm same
~1 >=1.0.0 <2.0.0 >=1.0.0 <2.0.0
~1.2 >=1.2.0 <2.0.0 >=1.2.0 <1.3.0
~1.2.3 >=1.2.3 <1.3.0 >=1.2.3 <1.3.0

https://github.com/composer/semver/issues/14 より引用

参考:バージョン指定してライブラリ追加

composer require phpoffice/phpspreadsheet:"~1.25.2"

参考URL

Clone this wiki locally