1. suke

    Posted

    suke
Changes in title
+Composerの導入&使い方 -一度Composerを使ったけど使い方忘れてしまったという人向け-
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,216 @@
+一度Composerを使ったけど使い方忘れてしまったという人向け(自分用)に描いています
+
+# インストール
+## Linux
+下記リンクを参考
+[Qiita - Composerをインストールしてみた](https://qiita.com/kakijin/items/02364adacf36410f449e)
+
+## Windows
+[公式サイト](https://getcomposer.org/)からインストーラーをダウンロードしてインストール。
+途中で聞かれるPHP実行ファイルのパスはphp.exeのパスを指定。
+(例)XAMPPだと`C:\xampp\php\php.exe`
+
+# 使い方
+## 一番最初
+プロジェクトのルートディレクトリに「composer.json」ファイルを作成して下記のようにインストールしたいパッケージをJSON形式で書く。
+
+
+```composer.json
+{
+ "require": {
+ "zendframework/zend-cache": "3.*"
+ },
+ "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
+
+### ワイルドカード
+| 指定例 | 対象となるバージョン |
+|:-----------------|:------------------:|
+| * |全て|
+| 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のインストール遅いねん
+というときは
+
+## 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=)