概要
- 1日目の「PHPのプロパティをStrictに定義する」に続きまして、PHP Advent Calendar 2013 2日目です
- 今後、Composerベースでの記事が出来ると思うので、早めに解説しておきます!
- コピペで導入できるように心がけます。
Composerとは
- PHPのライブラリ依存管理のデファクトスタンダードなパッケージ管理ツールです。Rubyのgem,PerlのCPANにあたるツールです。
- PHPのライブラリ管理ツールとして、PEARやPEAR2などがありますが、昨今のライブラリの管理はComposerに統一されつつあります。
- また、PHPで自作したライブラリを他の開発者に利用してもらうためにも、Composerで導入出来るようにしておくと利用されやすくなります。
- 対応環境は PHP 5.3.2+です
導入
Composerは、既存のプロジェクトなどにも簡単に導入できます。
アプリを構築するディレクトリを作ります
今回はスクラッチからアプリを作成することを想定します。
% mkdir app % cd app
Composerをインストールします
% curl -sS https://getcomposer.org/installer | php
composer.pharというファイルが作成されます。
composer.pharはPHPプログラムのアーカイブです。
ライブラリをインストールします
guzzleという、HTTPクライアントをインストールしてみます。
composer.jsonに利用するライブラリの設定を書き込みます。
% echo '{ "require": { "guzzle/guzzle": "~3.7" } }' > composer.json
requireキーに、ライブラリ名とそのバージョン指定を記載します。ライブラリ名はpackagistで検索できます。
composerのupdateサブコマンドで、必要ファイルをダウンロードします。この際、依存するパッケージがある場合は自動的に依存するファイルもダウンロードされます。
% php composer.phar update
初めてupdateコマンドを実行すると、composer.lockとvendorディレクトリが作成されます。
composer.lockには、現在利用しているライブラリの名前とバージョンが記載されます。vendorディレクトリには、ライブラリ自体のファイルなどが保存されます。
% ls composer.json composer.lock composer.phar vendor/
ライブラリを利用する
Yahoo! Japanへ接続して、コードを表示するスクリプトを書いてみます。
% vi test.php
ファイルの中身
<?php // クラスローダーを読み込む require 'vendor/autoload.php'; // ヤフーへ接続するHTTPクライアントのインスタンスを作成 $client = new \Guzzle\Http\Client('http://www.yahoo.co.jp/'); // GETリクエストを送る準備 $request = $client->get('/'); // HTTPリクエストを送信 $response = $request->send(); // レスポンスを表示 print_r($response);
実行してみます
とりあえず、HTTPレスポンスが出力されます。
% php test.php | head HTTP/1.1 200 OK Date: Mon, 02 Dec 2013 15:22:10 GMT P3P: policyref="http://privacy.yahoo.co.jp/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV" Expires: -1 Pragma: no-cache Cache-Control: private, no-cache, no-store, must-revalidate X-XRDS-Location: http://open.login.yahoo.co.jp/openid20/www.yahoo.co.jp/xrds Vary: Accept-Encoding Connection: close Transfer-Encoding: chunked
まとめ
- Composerをインストールし、guzzleライブラリをインストールしました
- guzzleを使ってPHPスクリプトを作成しました。
Comments