1. suke

    No comment

    suke
Changes in body
Source | HTML | Preview
@@ -1,221 +1,228 @@
一度Composerを使ったけど使い方忘れてしまったという人向けに書いています
# インストール
## Linux
下記リンクを参考
[Qiita - Composerをインストールしてみた](https://qiita.com/kakijin/items/02364adacf36410f449e)
## Windows
[公式サイト](https://getcomposer.org/)からインストーラーをダウンロードしてインストール。
途中で聞かれるPHP実行ファイルのパスはphp.exeのパスを指定。
(例)XAMPPだと`C:\xampp\php\php.exe`
+# Composer自体のアップデート
+
+## Linux
+
+## Windows
+インストーラーでもう一度インスト―ルすればよい(自分の場合は上書きインストールで問題なかった)
+
# 使い方
## 一番最初
プロジェクトのルートディレクトリに「composer.json」ファイルを作成して下記のようにインストールしたいパッケージをJSON形式で書く。
```composer.json
{
"require": {
"zendframework/zend-cache": "2.*"
},
"require-dev": {
"phpunit/phpunit": "6.*",
"apigen/apigen": "*"
}
}
```
ターミナル(Windowsだとコマンドプロンプト)でプロジェクトのディレクトリに移動。
下記コマンドを実行したらパッケージがインストールされる。
```
composer install
```
インストール後は下記のようなディレクトリ構造になる。
```
(プロジェクトルート)/
├ composer.json
├ composer.lock
└ vendor/
```
- composer.json
インストールするパッケージ一覧
- composer.lock
インストールしたいパッケージに必要な関連パッケージを含めた一覧(composer.jsonと同じ記述形式)
- vendor
インストールしたパッケージのソース本体
## パッケージの追加/パッケージの削除/パッケージの最新版へのアップデート
- パッケージを追加の場合はcomposer.jsonに追加したいパッケージを追記して下記コマンドを実行。
- パッケージを削除の場合はcomposer.jsonに削除したいパッケージを消して下記コマンドを実行。
- 単純にインストール済みのパッケージのアップデートの場合は下記コマンド実行のみ。
```
composer update
```
## 他の環境でのインストール
例えばローカル環境でインストールしたパッケージをサーバー上でセットアップする場合。
下記コマンドを実行する。
```
composer update
```
#composer.json ファイルの解説
## JSONの各要素の解説
- "require": { 導入したいパッケージの設定、JSON }
- "require-dev": {開発環境のみで使われる導入したいパッケージの設定、JSON }
`composer install`や`composer update`のときに `--nodev` オプションを付けるとインストールされない
- {パッケージの設定、JSON}
{"(開発者名)/(パッケージ名)": "(バージョン指定)"}
## パッケージのバージョン指定
下記表の「対象となるバージョーン」の「最新版」がインストールされる
### 直接指定
| 指定例 | 対象となるバージョン |
|:-----------------|:------------------:|
| 1.0.2 | version = 1.0.2 |
### レンジ
| 指定例 | 対象となるバージョン |
|:-----------------|:------------------:|
| >=1.0 |1.0 <= version |
| >=1.0,<2.0 |1.0 <= version < 2.0 |
| >=1.0,<1.1 || >=1.2 | 1.0 <= version < 1.1 もしくは 1.2 <= version |
- 「 」(スペース)「,」はAND
- 「||」はOR(※注意、上記表の「|」は全角で書いてます、半角で書いたらエスケープしても表の区切り文字として認識された・・・orz)
### ワイルドカード
| 指定例 | 対象となるバージョン |
|:-----------------|:------------------:|
| * |全て|
| 2.* |2.0.0 <= version < 3.0.0|
| 2.1.* |2.1.0 <= version < 2.2.0|
### チルダ
| 指定例 | 対象となるバージョン |
|:-----------------|:------------------:|
| ~2.1 |2.1.0 <= version < 3.0.0|
| ~2.2.3 |2.2.3 <= version < 2.3.0|
### キャレット
| 指定例 | 対象となるバージョン |
|:-----------------|:------------------:|
| ^1.3.2 |1.3.2 <= version < 2.0.0|
| ^2.0.2 |2.0.2 <= version < 3.0.0|
| ^0.3.2 |0.3.2 <= version < 0.4.0 *|
*「0.x.x」というメジャーバージョンが0のときだけ例外、ちなみに「^1.3」という指定はないっぽい
## バージョンの表記
基本的に下記のようにバージョンナンバーを付けるのが一般的である
```
(メジャーバージョン).(マイナーバージョン).(パッチ)
```
##参考
- [COMPOSER公式 - composer.jsonの説明](https://getcomposer.org/doc/articles/versions.md)
- [QUARTETCOM TECH BLOG - [初心者向け] composerのバージョン指定方法](http://tech.quartetcom.co.jp/2015/01/19/composer-practices/)
- [A Day in Serenity (Reloaded) - Composerのバージョン指定方法でのチルダ(~)とキャレット(^)の違い](http://blog.a-way-out.net/blog/2015/06/19/composer-version-tilde-and-caret/)
- [composer.json - Composer ドキュメント日本語訳](https://kohkimakimoto.github.io/getcomposer.org_doc_jp/doc/01-basic-usage.html)
# コマンド
よく使うコマンドをメモ
## composer install
最初にインストールするとき、依存関係解を決済みでその指定バージョンをインストールしたいとき使用
```
composer install
```
「composer.lock」がある場合「composer.lock」からそのままパッケージをインストール
「composer.lock」がない場合は「composer.json」から依存関係を解決してインストール
###オプション
- `--no-dev`
「"require-dev"」はインストールしない
## composer update
パッケージをアップデートするとき、パッケージを追加・削除したいときに使用
```
composer update
```
「composer.json」から依存関係を解決してパッケージをインストール
###オプション
- `--no-dev`
「"require-dev"」はインストールしない
## composer require
コマンドでパッケージを直接追加したいときに使用
```
composer require (パッケージ名)
```
指定パッケージを「composer.json」に追記してインストールする
### オプション
- `--dev`
「"require-dev"」の開発用の方にパッケージを追記する
## その他コマンドの使い方は
下記のコマンド(「composer --help」ではなく単に「composer」だけ)を入力したらコマンド一覧が出て来る(英語)
```
composer
```
それか下記公式サイト
## 参考
- [公式 - Command-line interface / Commands](https://getcomposer.org/doc/03-cli.md)
- [Qiita - composer.json、composer.lockって何なの?という人向けのまとめ](https://qiita.com/masarufuruya/items/23131a465b7e9c8f3060)
# Composerのインストール遅いねん
というときは
## ウイルス対策ソフトを一時的にOFFにする
自分はこれが原因で激遅でした orz
ウイルス対策ソフトの何が原因で遅くなったかは原因不明ですが・・・
## packagistのミラーサーバを日本国内のサーバに変更する
下記コマンドを実行
```ミラーサーバをpackagist.jpに変更
composer config -g repos.packagist composer https://packagist.jp
```
- `composer config [setting-key] [setting-value1] ... [setting-valueN]`
コンポーザーに設定を追加
- `-g `
グローバル環境に設定を追加。`$COMPOSER_HOME/config.json`ファイルに追加
## 参考
- [Qiita - Composerの実行速度を高速化する方法](https://qiita.com/keita-nishimoto/items/37f0fac49442b72c403e)
# Git使っている場合は
「.gitignore」に下記を追加するとコンポーザーでインストールしたパッケージはバージョン管理対象外になる。
よく使われている手法らしい。
```gitignore
vendor
```
# 全体を通しての参考
- [COMPOSER ・・・公式サイト](https://getcomposer.org/)
- [packagist ・・・パッケージのリポジトリ](https://packagist.org/)
- [独習PHP 第3版 ・・・お勧め書籍](https://www.amazon.co.jp/%E7%8B%AC%E7%BF%92PHP-%E7%AC%AC3%E7%89%88-%E5%B1%B1%E7%94%B0-%E7%A5%A5%E5%AF%9B/dp/479813547X/ref=tmm_pap_swatch_0?_encoding=UTF8&qid=&sr=)