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プロダクトを始めるのが良いでしょう!
まず以下の様にしてインストーラーを入れます。
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でアプリを書くなら一択くらいには気に入っているので、ぜひ使う人口が増えるとうれしいです。
次やる気がでれば導入後の入門記事とかも書きたいな〜