menu
書いてる野郎
orebike@gmail.com
PHP版の Ruby の Bundler とか Java の maven と思っていい。
このように require の下に名前とバージョンを指定する。
{ "name": "yamada/unko", "require": { "hoge/piyo": "1.2.3" } }
セントラルリポジトリに該当のパッケージがあった場合自動的に設定される。
ex | memo | |
---|---|---|
ズバリ指定 | 1.2.3 |
このように一番起点となる自分のソースコードから composer が自動生成したら autoload.php を呼び出せばいい。
require_once __DIR__ . '/vendor/autoload.php'; use hoge\piyo\Fuga;
この autoload.php が各ライブラリのコードを全て自動的に require してくれて使える状態になる。 あとはそのコードで使いたいクラスを use でズラズラと書けばいい。
require されているので namespace が合致すればそこから使えるようになる。
※ このへんの情報が psr-0 と psr-4 で錯綜しているので、改めて詳しく確認する必要がある。なにやらアンスコに関する意味が違うらしい。
autoload.php を使えば require 指定したライブラリは全読み込みしてくれるが、そこに自作のコードも加えられると便利なのでそのようにできる記述がある。
このように記述する。 psr-4 というのは PHP に関する autoload の規約の名前でその規約に従ってディレクトリとか名前が構成されてますよと伝えている。
{ "name": "yamada/unko", "require": {}, "autoload": { "psr-4": { "hoge\\": "hoge/", "hoge\\piyo\\": "hoge/piyo/" } } }
の後に名前空間、ディレクトリとディレクトリを書く。 ここには対応させるディレクトリとパッケージを全部書く。
ライブラリの依存性を解決して(つまり lock を更新して)からインストール
$ composer update
開発であれば、だれかが代表してやるやつ
すでに生成されている composer.lock を使ってインストール
$ composer install
$ sudo composer self-update
$ composer list
ライブラリは追加してなくても、自作の namespace を追加した場合は autoload の再作成が必要なのでそれを行う。
$ composer dump-autoload
json のほうはユーザーが指定する定義で、依存性やらバージョンを考慮したインストール対象となるライブラリそのものが記述されているものが lock。
Yosemite にインストールする。Composerを見ると
$ curl -sS https://getcomposer.org/installer | php
をやれと書いてあるので、やる。
終了
apt で一発。
$ sudo apt install composer
コマンドをインストールした場合は
~/vendor/package_name/src/bin/hogehoge
あたりに入るのでそれを使う