composer関連のメモ

composerを使っていて何やかんやメモしたくなることがある。

composerを使うための準備

同じWindows上で使うにしても、使う状況により準備が違う。
検索してて出てくる情報って、Linuxで操作することを想定したものが多いから、WSL(Windows Subsystem for Linux)を介するほうを自分はオススメする。
Windowsで直接composer使う準備
WSLの仮想環境下でcomposer使う準備

プロジェクト専用composer作る

curl -sS https://getcomposer.org/installer | php

または

php -r "readfile('https://getcomposer.org/installer');" | php

基本的には通常のcomposerインストールと一緒。
パス通すとこに置かないだけの話。
Windowsで使う場合は『php -r』の方を使う。

"https"のPHPエラーで、composerを入れられない!

PHPのエラーで、インストール実行出来ない場合は、php.iniの見直しが必要。

Warning: readfile(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in Command line code on line 1

Warning: readfile(https://getcomposer.org/installer): failed to open stream: No such file or directory in Command line code on line 1

php.iniの設定で『httpsが実行できない状態』になっている。

『php.ini』にて、opensslのextensionを探して、有効化する。

;extension=openssl

※前は『php_openssl.**』だった。『**』は実行環境にもよる拡張子。winなら.dll、linuxなら.so
先頭にある『;』が『コメントアウトの文字』なので、消す。
結果、こんな感じになる。

extension=openssl

これでhttpsアクセス云々のエラーは出ないハズなので、再度先程の『php -r 云々』実行する。

『php.ini』の場所が解らない場合、コマンドツールから『php --ini』と打ち込む。
▼こんな感じで、この場合は『c:\windows』が置く場所。

> php --ini
Configuration File (php.ini) Path: C:\WINDOWS
Loaded Configuration File:         (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

※php.iniがない場合『php.ini-development』をコピーし、名前を『php.ini』にする。『php.ini-development』の場所はphp.exeある場所。
php.iniから上記に該当するextensionを探して、有効化する。

プロジェクトを作る

パッケージをインストールする場合(※以下はlaravelの場合)

composer create-project --prefer-dist laravel/laravel xxx

特にパッケージ云々なく空プロジェクトを用意する場合

composer init

質問に答えていけば出来る。英語だけど。

貰ったプロジェクトをインストールする

composr.jsonある場所で、下記コマンドを実行。

composer update

これで環境は整う、

ライブラリやパッケージをインストール

主に配布サイトで指定がある場合は

composer require <package>[:<tag>]

もしくは『composer.json』を書き換えて

composer install

または

composer update

バージョン指定で『チルダ(~)』と『キャレット(^)』と『アスタリスク(*)』

1.*
1系全部
~1.1
1.1.0以上、2.0.0未満
^1.1
1.1.0以上、2.0.0未満
~1.1.5
1.1.5以上、1.2.0未満
^1.1.5
1.1.5以上、2.0.0未満
~0.3
0.3.0以上、1.0.0未満
^0.3
0.3.0以上、0.4.0未満

参照:Composerのバージョン指定方法でのチルダ(~)とキャレット(^)の違い — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something

インストーラパスは絶対ではない

ものによってはインストーラパスが使えない様子。

    "require": {
        "fortawesome/font-awesome": "*"
    },

    "extra": {
        "installer-paths": {
            "public/vendor/{$name}/": [
                "fortawesome/font-awesome"
            ]
         }
     }

こうしても動かないものは動かない
インストーラーパスは無視されます・Issue#206・作曲家/インストーラー・GitHub

コメント

タイトルとURLをコピーしました