あざらし備忘録。

渋谷ではたらく音ゲー大好きウェッブエンジニアがいろいろ思った事やった事を書いていくブログです

2.7から始めるSymfony2[PHP][Symfony]

Symfony2のLTSである、Symfony2.7がちょっと前にリリースされました。

LTSということで、Symfony2.7は3年間はサポートするよ!っていうなかなか安定感のあるバージョンになっています。

The Release Process (Contributing to Symfony)

サポート期間が長いのでギョーミーな部分にもSymfony2を導入するハードルも下がるしSymfony2を新規で導入することも増えるんじゃないかなぁと思います。

ということで今回は「これからSymfony2を始めるには」といったところの記事を書こうかなと思います!

「今まで使ったことないけど、試してみようかな?」的なところの助けになれば幸いです。

今回はSymfony2の導入から簡単な構造の説明までをできたらと思います。

インストーラーの導入

Symfony2は、2015/03/26から、新しいインストーラーが導入されて、以前よりも簡単に便利にSymfony2をインストールできるようになりました。

なのでこれからはこのインストーラーを使ってサクサクSymfony2プロダクトを始めるのが良いでしょう!

まず以下の様にしてインストーラーを入れます。

LinuxMac OS Xだったら

sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony
sudo chmod a+x /usr/local/bin/symfony

Windowsだったら

c:\> php -r "readfile('http://symfony.com/installer');" > symfony

このようにするだけです:)

なお、ちょっとWindowsが手元にないのでここからはLinux/Mac OS Xベースで書いていきますmm

プロジェクトの作成

インストーラーがサクッとインストールできたので、次は早速プロジェクトを作成しましょう。

symfony new <プロジェクト名> 2.7

この様にコマンドを実行すると、よしなにSymfony2.7で動くプロジェクトを作成してくれます:) なお、2.7 の部分はお察しの通りSymfony2のバージョンを表していて、任意のバージョンのSymfony2をインストール可能です。2.6でも、2.5でも、好きなように入れることができます。

また、上記の例ではSymfony2.7の中でも最新バージョンを入れてくれますが、2.7.1 のように詳細までバージョン指定することでその指定したバージョンを入れることもできます。

逆にバージョン指定をしないでコマンド実行をするとその時の最新バージョンで動くプロジェクトが作成できます。

さて、コマンドを実行すると以下のように表示されるかと思います。

 Downloading Symfony...

    4.95 MB/4.95 MB ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  100%

 Preparing project...

 ✔  Symfony 2.7.1 was successfully installed. Now you can:

    * Change your current directory to /Users/g-nakanishi/hogehoge_symfony

    * Configure your application in app/config/parameters.yml file.

    * Run your application:
        1. Execute the php app/console server:run command.
        2. Browse to the http://localhost:8000 URL.

    * Read the documentation at http://symfony.com/doc

これでプロジェクト作成は完了です。いやはや簡単。

また、Symfony2にはその環境でちゃんとSymfony2が動作するかどうかのチェックスクリプトが同梱されていて、そのスクリプトを実行すれば簡単に動作をするかも確認できます。

php <プロジェクト名>/app/check.php

こちらを実行するとphp.iniを見つつ動作チェックを行ってくれます。

プロジェクトの動作確認

もう実はバッチリSymfony2は動くようになってくれています!

確認してみましょう。

プロジェクトに入って、サーバーを起動してみます。

cd <プロジェクト名>
php app/console server:run

Server running on http://127.0.0.1:8000                                                         
Quit the server with CONTROL-C.         

サーバー起動まで行えたら、ブラウザでhttp://127.0.0.1:8000/app/exampleにアクセスしてみます。

これでHomepage.のように画面上に表示されていればSymfony2はしっかり仕事をしてくれています。

プロジェクトの構造

Symfony2プロジェクトは、以下の様な構成になっています。

├─ app/
│  ├─ console
│  ├─ cache/
│  ├─ config/
│  ├─ logs/
│  └─ Resources/
├─ bin/
├─ src/
│  └─ AppBundle/
├─ vendor/
└─ web/

app

アプリケーション固有の設定や、アプリケーションの核になるファイル、キャッシュやログの格納されるディレクトリなどが詰まったディレクトリです。

console

Symfony2が提供しているコマンド群を実行するためのスクリプトです。

先ほど実行したphp app/console server:runのようにして使用します。

また、自作したコマンドをこのconsole経由で実行可能にすることもできます。

cache

キャッシュディレクトリです。Symfony2は色々な部分でキャッシュを行って高速化を行っていますが、そのキャッシュ群はこのディレクトリに格納されます。

config

アプリケーション固有の設定は、このconfigディレクトリ下に格納されます。 データベースの設定であったり、ロガーの設定であったり、ルーティングの設定であったり、各種様々な設定は軒並みこちらのディレクトリに集まります。

logs

ログが集まるディレクトリです。(特になんも言えなかった)

Resources

主にアプリケーション全体に共通となるhtml等を置くディレクトリです。

bin

実行可能な便利コマンド群を置くディレクトリです。 シンボリックリンクを置いておいたりもできます。

src

ソースコードが置かれる部分です。

Symfony2は全てがBundleという単位で管理されているため、そのBundle群がこのsrc下に集まっています。

Bundleというのはプラグインに近いような概念で、自分たちで書いていくアプリケーションコードに関してもBundleという形で作成していきます。

web

俗に言うpublicなディレクトリで、ここにはブラウザ等からアクセス可能なものが配置されます。

vendor

外部ベンダーの作成したライブラリ等が格納されます。

git等のバージョン管理時にはignoreしておいたら良いかと思います。

終わりに

今回はとりあえず「これくらいカジュアルに始められるよ!」というのを伝えたくて本当に導入部だけ書いてみました。

Symfony2、PHPでアプリを書くなら一択くらいには気に入っているので、ぜひ使う人口が増えるとうれしいです。

次やる気がでれば導入後の入門記事とかも書きたいな〜