symfonyのインストールが完了したので、
symfonyをつかってHello! World!を出力するまで行う。
symfonyのインストールはコチラを参照。
また、apacheのmod_rewriteというモジュールが必要です。
無い人はインストールしておきましょう。
今回はhelloというプロジェクトを開発し、Hello! World!を出力するアプリケーションを作成します。
まずは、プロジェクトを作ります。
どこでもよいので、プロジェクト用のディレクトリを作成。移動。
ここでは/project/helloがsymfonyコマンドを打つ基本のディレクトリになります。
mkdir /project/hello cd /project/hello
次に、symfonyのプロジェクトを初期化する。
*symfonyコマンドが打てないならsymfonyにパスを通しておいてください。
symfony init-project hello
次に、アプリケーションを作成する。
今回はhello! world!というプログラムを公開するアプリケーションなので「front」というアプリケーションを作ります。
もし、このプロジェクトを管理する管理画面等を作る場合は、「back」といったアプリケーションを作ります。
symfony init-app front
さて、ここまできたら/project/hello/web配下にindex.phpというコントローラーが配置されます。
実際にwebでアクセスした際に起動する実行ファイルはこのindex.phpになります。
なので、ここを実行するようにapacheの設定を行います。
例えば、hello.morinoyume.comというドメインなら以下のようになります。
(*hello.morinoyume.comはありませんよ)
ドキュメントルート、DirectlyIndex、Alias /sf…がミソです。
Alias /sfは自分がsymfonyをインストールしたディレクトリのsfを指定してあげましょう!
<VirtualHost *>
ServerName hello.morinoyume.com
DocumentRoot /project/hello/web
ErrorLog logs/hello_error_log
CustomLog logs/hello_access_log combined
#php
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
#directry index
DirectoryIndex index.php
Alias /sf /usr/local/php/PEAR/data/symfony/web/sf
<Directory />
Order Deny,Allow
Deny from all
Allow from all
</Directory>
<Directory />
Options All
AllowOverride All
</Directory>
</VirtualHost>
この時点で、http://hello.morinoyume.com/にアクセスして、

「Symfony Project Created」という画面になれば、symfonyのセッティング完了です。
index.phpにアクセスできたにも関わらず、上記のような綺麗な画面にならなければ、「/sf」のAliasの設定が間違っています。
もし、index.phpにアクセスできないようなら、apacheの設定ミスです。
さて、プロジェクトができたら、いよいよモジュールを開発しましょう。
今回はfrontアプリケーションにindexというモジュールを作成して、hello!worldを出力するモジュールを作ります。
もし、Hello!Worldアプリケーションのアカウント登録のインターフェイスを作るなら「account」モジュールなどモジュールを分けてあげましょう。
symfony init-module front index
これで、indexモジュールができました。
/project/hello/apps/front/modules/ 配下にindexモジュールができていることがわかると思います。
次はテンプレートにHello! World!を書きましょう。
vi /project/hello/apps/front/modules/index/templates/indexSuccess.php
に「Hello!World!」と書いてください。
次は、アクション(プログラム)にこのテンプレートを出力するように
public function executeIndex(sfWebRequest $request)
{
return sfView::SUCCESS;
}
と書きましょう。
これで、完了です。
http://hello.morinoyume.com/index
にアクセスしてみてください。
「Hello!World!」という文字が表示されたら成功です!
だらだらと長くなってしまった・・・
わかりにくい投稿になってしまいましたね・・・。
関連の記事




