Composerを使ったSymfony2.1のインストール方法

2012年12月4日

symfony-logo

この記事は Symfony Advent Calendar 2012 4日目の記事です。

Symfony はバージョン 2.1 からパッケージの管理に Composer を使用するようになりました。2.0 時代の deps ファイルは削除され、autoload まわりが大きく変わりました。Symfony2.1 の勉強を進めていたところ、日本語でインストール方法を解説している記事が少ないと感じたので、今回整理してみました。

この記事では、Composer を使った Symfony2.1 のインストール方法、更新方法、サードパーティ製のバンドルを追加インストールする方法などを紹介します。おまけで PHPUnit を Composer からインストールする方法も紹介します。

動作確認環境

  • Symfony 2.1.3
  • PHP 5.4.8

目次

  1. 事前準備
  2. Composerをインストールする
  3. Symfony2.1をインストールする
  4. Symfony2.1をアップデートする
  5. サードパーティ製バンドルを追加インストールする
  6. PHPUnitをインストールする
  7. AcmeDemoBundle の Test を実行してみる
  8. Symfony本体のリリースをすばやく確認する

事前準備

事前準備として、git をインストールして Github から clone できるようにしておきます。Symfony2 のライブラリは、多くが Github で管理されています。また、PHP は 5.3.3 以降である必要があります。

Composerをインストールする

インストール

Composer は 下記コマンドでインストールできます。

$ curl -s http://getcomposer.org/installer | php

動作確認

完了したら、下記コマンドで動作確認します。バージョン情報が表示されればOKです。

$ php composer.phar --version

以降、Symfony2 のパッケージの管理は、ダウンロードした composer.phar を使用します。

PATH を通す

composer.phar はよく使用しますので、PATHが通っているディレクトリに置いておくと便利です。私はホームディレクトリ直下に bin というフォルダを作成してPATHを通し、そこに composer.phar を置いています。

$ mkdir ~/bin
$ mv composer.phar ~/bin/
PATH=/home/ユーザー名/bin:$PATH
export PATH

アップデート

Composer 自身を更新するには下記コマンドを実行します。

$ php composer.phar self-update

参考にさせていただいたサイト

Symfony2.1をインストールする

インストール

先ほどダウンロードした composer.phar を使用して Symfony2.1 をインストールします。composer.phar には PATH が通っているものとします。

$ ce /var/www/
$ composer.phar create-project symfony/framework-standard-edition ./Symfony21/ 2.1.3

上記のコマンドを入力すると、カレントディレクトリに Symfony21 というディレクトリが作成され、そこに Symfony2.1.3 がインストールされます。インストール先のディレクトリとバージョン番号は適宜置き換えてください。上記の例では、/var/www/Symfony21 にインストールされます。

参考にさせていただいたサイト

Symfony2.1 の動作環境を整える

ファイルをダウンロードしてから Symfony2.1 を動作させる手順は、Symfony2.0 とほとんど同じです。必要なPHPモジュールを入れて、logs ディレクトリと cache ディレクトリに書き込み権限を与えます。詳細は、Symfony のインストールと設定 | Symfony2日本語ドキュメント が参考になります。

Symfony2.1をアップデートする

Symfony2.1 のバージョンが上がったら、下記の手順でアップデートを行います。バージョン 2.1.3 から 2.1.4 への更新を例に紹介します。

Packagist の Requires を確認

symfony/framework-standard-edition - Packagist にアクセスし、最新バージョンの Requires を確認します。

packagist

composer.json の requre を確認

Symfony2.1 のルートディレクトリ直下にある composer.json の require を参照し、Packagist との差分を確認します。

"require": {
    "php": ">=5.3.3",
    "symfony/symfony": "2.1.*",
    "doctrine/orm": ">=2.2.3,<2.4-dev",
    "doctrine/doctrine-bundle": "1.0.*",
    "twig/extensions": "1.0.*",
    "symfony/assetic-bundle": "2.1.*",
    "symfony/swiftmailer-bundle": "2.1.*",
    "symfony/monolog-bundle": "2.1.*",
    "sensio/distribution-bundle": "2.1.*",
    "sensio/framework-extra-bundle": "2.1.*",
    "sensio/generator-bundle": "2.1.*",
    "jms/security-extra-bundle": "1.2.*",
    "jms/di-extra-bundle": "1.1.*"
},

Packagist が更新されていたら composer.json を書き換える

Packagist の Requires が更新されていたら、composer.json の require を Packagist の Requires の内容で書き換えます。今回の 2.1.3 から 2.1.4 へのバージョンアップでは、twig/extensions と kriswallsmith/assetic に更新があります。

"require": {
    ...
    "twig/extensions": "1.0.*@dev",
    ...
    "kriswallsmith/assetic": "1.1.*@dev",
    ...
}

composer update

composer.json のあるディレクトリに移動し、下記コマンドを実行して Symfony を更新します。

$ composer.phar update

サードパーティ製バンドルを追加インストールする

Symfony Standard Edition に同梱されていないライブラリは、Composer で追加インストールします。今回は試しに、DoctrineFixturesBundle をインストールします。

composer.json を編集する

composer.json の require に下記を追記します。

...
"require": {
    ...
    "doctrine/doctrine-fixtures-bundle": "dev-master",
    ...
},
...

バンドルをダウンロード

Composer update コマンドを実行します。

$ composer.phar update

vendor/doctrine/doctrine-fixtures-bundle にダウンロードされます。

AppKernel.php を編集する

app/AppKernel.php にダウンロードしたバンドルを追加します。

// ...
public function registerBundles()
{
    $bundles = array(
        // ...
        new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
        // ...
    );
    // ...
}

以上で DoctrineFixturesBundle のインストールは完了です。

参考にさせていただいたサイト

PHPUnitをインストールする

Composer には慣れてきましたか。

ここからはおまけです。PHPUnit を Composer からインストールしてみます。Composer から PHPUnit をインストールすると、PEAR をインストールしたり、アップデートしたり、チャンネルを登録したりする面倒な作業から開放されます。

composer.json に追記

composer.json の require に下記を追記します。末尾に追加するときはカンマの有無に気をつけてください。

...
"require": {
    ...
	"phpunit/phpunit": "3.7.*",
    ...
},
...

composer update

Composer update コマンドを実行します。

$ composer.phar update

PHPUnit は vendor/phpunit にダウンロードされます。

phpunit 実行ファイルにPATHを通す

phpunit の実行ファイルは vendor/phpunit/phpunit/composer/bin/phpunit にあります。PATH の通ったディレクトリにシンボリックリンクを貼って使うと良いでしょう。私は、~/bin ディレクトリにシンボリックリンクを張っています。

$ ln -s /var/www/Symfony21/vendor/phpunit/phpunit/composer/bin/phpunit /home/ユーザー名/bin/phpunit

シンボリックリンクを貼ったら下記コマンドで動作確認します。バージョン情報が表示されればOKです。

$ phpunit --version

AcmeDemoBundle の Test を実行してみる

PHPUnit がインストールできたら、Symfony2.1 に標準で付属している AcmeDemoBundle のテストを実行してみましょう。

$ cd /var/www/Symfony21/
$ phpunit -c ./app ./src/Acme/DemoBundle/Tests/
PHPUnit 3.7.9 by Sebastian Bergmann.
Configuration read from /var/www/Symfony21/app/phpunit.xml.dist
.
Time: 0 seconds, Memory: 13.50Mb
OK (1 test, 1 assertion)

無事 OK の文字が表示されましたか。

Symfony本体のリリースをすばやく確認する

Symfony 本体の最新情報をキャッチするには、Blog - Symfony を RSS 登録してウォッチすると良いです。コミットログの書き方も参考になりますし、英語の勉強にもなります。

まとめ

Symfony2.1 のインストール方法を例に Composer の使い方を紹介しました。これから Symfony2 を勉強してみようと思っている方の参考になれば幸いです。

-技術ブログ
-