Quantcast
Channel: omnioo lab. record » PHP/MySQL
Viewing all articles
Browse latest Browse all 59

Comporserの基本的な使い方

$
0
0

元々はSymfonyのパッケージ管理で使われていたcomporserですが最近ではphpのパッケージ管理で使われるようになりました。node.jsのnmp、rudyでいうところのbundlerみたいなものということになります。かねてからLinuxのyumやphpのpearなどいろんなパッケージ管理方法がありましたが、これらはOS単位でのパッケージ管理だったのでいちいちサーバー構築しないといけないということで非常に面倒です。そこでプロジェクト単位(アプリケーション単位)でパッケージを管理しようというものがcomposerということになります。
composerは依存関係のライブラリーを解決してインストールしてくれるので、とても便利です。

コンポーザーのインストール

php5.3.2以上じゃないとcomposerは使えないです。またサーバーにcurlがないとインストールできないです。curlがどうしても入れられない場合はcomposerの本家に言ってダウンロードしてくることもできます。https://getcomposer.org/
# curl -s http://getcomposer.org/installer | php
私はたいていのプロジェクトがDocumentRoot単位なのでたいていの場合はホームディレクトリにインストールします。都度インストールした方が使いやすいというのが私の印象ですが、グローバルにcomposerを使うこともできます。

# curl -sS https://getcomposer.org/installer | php
# mv composer.phar /usr/local/bin/composer

インストールが完了したら、コマンドを確認してみます。このコマンドでcomposerのコマンドがどんなものなのか確認できます。
$ php composer.phar
これでインストールは終わり。

パッケージをインストールする

symfonyをプロジェクト単位でインストールする

composerでパッケージをインストールします。symfonyをインストールする場合は直接引数を指定してプロジェクト単位でインストールすることができます。
$ composer* create-project symfony/framework-standard-edition /home/USER/www
インストールすると以下のようなファイルができています。インストールしたパッケージはvender以下におさめられます。composer.pharがcomposer本体、composer.lockがインストールのロックファイル、composer.jsonがパッケージ管理のデータベース的なものになります。
|-- .......
|-- composer.json
|-- composer.lock
|-- composer.phar
`-- vendor
    |-- autoload.php
    `-- composer
autoloaderはcomposerでインストールしたパッケージをすべて自動的に読み込んでくれるものです。
require_once 'vendor/autoload.php';
とするだけでインストールしたパッケージを読み込んでくれます。個々にincludeしたりrequireしたりする必要がなくなります。

パッケージ単位でインストールする

で、パッケージ単位でインストールする場合は、composer.jsonにインストールしたいパッケージを書きます。composer.jsonにインストールしたいパッケージを追記します。ここではphp5.4以下の場合bcryptで必要なパッケージircmaxellを追加します。
"require": {
        .......
        "ircmaxell/password-compat": "~1.0.3"
    },
という風にjsonに追記して、
$ php composer.phar update
でインストールできます。(かなり時間かかりました。プログレスバー的なものがないので、途中心配になりました。)

Viewing all articles
Browse latest Browse all 59

Trending Articles