Php/composer/基本
提供: 初心者エンジニアの簡易メモ
パッケージ管理ツール node.jsのnpmみたいなもの。
目次
[非表示]- 1 ローカルプロジェクトにcomposerインストール
- 2 使い方(例:monolog/monolog)
- 3 vendor内のライブラリを自動ロード
- 4 composer.json編集した後の更新
- 5 composer.lockの情報でinstall
- 6 vendorのdirの名前を変更
- 7 composer.json記述例
- 8 phpunitのinstall&実行例
- 9 composerで入れたpearをpath登録
- 10 composer自身のバージョンエラーが出た時
- 11 以下vendor/autoload.phpエラーが出た場合
- 12 以下autoloadのエラーが出た場合
- 13 参考
ローカルプロジェクトにcomposerインストール
$ curl -s http://getcomposer.org/installer | php $ sudo mv composer.phar /usr/local/bin/composer.phar $ composer -V Composer version e77435cd0c984e2031d915a6b42648e7b284dd5c 2014-07-02 15:44:54
使い方(例:monolog/monolog)
composer.json
{ "require": { "monolog/monolog": ">=1.0.0" } }
$ php composer.phar install
vendor内のライブラリを自動ロード
これで、パッケージを自動で読み込んでくれる。
require_once __DIR__ . '/vendor/autoload.php';
composer.json編集した後の更新
$ composer update
もしくは
$ php composer.phar update
composer.json のルールに従い最新のバージョンを取得し、composer.lock を更新
githubにログインして、表示されてる https://github.com/settings/tokens/new のurlを確認
composer.lockの情報でinstall
$ composer install
composer.lock に記載されたバージョンを固定してインストール
composer.lock が存在しない場合は、 composer.json を参照して、定義されたバージョン範囲(例: "symfony/http-kernel": "^5.3")に従い、利用可能な最新のパッケージをインストール。
vendorのdirの名前を変更
composer.json
{ "require": { "monolog/monolog": ">=1.0.0" }, "config": { "vendor-dir": "lib/" } }
composer.json記述例
{ "repositories": [ { "type": "pear", "url": "http://pear.php.net/" } ], "require": { "pear-pear.php.net/PEAR": "1.9.*", "pear-pear.php.net/Mail": "1.2.*", "pear-pear.php.net/Mail_Mime": "1.8.*", "pear-pear.php.net/Net_SMTP": "1.6.*", "pear-pear.php.net/Net_UserAgent_Mobile": "1.0.*", "pear-pear.php.net/Image_Transform": "0.9.4" } "require-dev": { "phpunit/PHPUnit": "5.1.*" }, }
phpunitのinstall&実行例
{ "require-dev": { "phpunit/phpunit": "5.1.*" } } $ vendor/bin/phpunit --bootstrap vendor/autoload.php tests/hoge.php
composerで入れたpearをpath登録
set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../vendor/pear-pear.php.net/PEAR'), realpath(APPLICATION_PATH . '/../vender/pear-pear.php.net/Net_UserAgent_Mobile'), get_include_path(), )));
composer自身のバージョンエラーが出た時
Warning: This development build of composer is over 30 days old. It is recommended to update it by running "/usr/local/bin/composer self-update" to get the latest version. $ sudo /usr/local/bin/composer self-update
以下vendor/autoload.phpエラーが出た場合
Failed to open stream: No such file or directory. The "vendor" folder does not exist. $ composer update --no-scripts
以下autoloadのエラーが出た場合
PHP Warning: require(bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in bootstrap/autoload.php on line 17 $ composer update --no-scripts