日本で開発されているフレームワーク。GREEで使われているので実績もある。なによりインストールや実践的な利用方法などの日本語ドキュメントがありがたい。
pear channel-discover pear.ethna.jp pear install ethna/ethna
まだ1.0が出たばかり
pear channel-discover pear.symfony-project.com pear install symfony/symfony-beta
PRJ_NAME | プロジェクト名 |
APP_NAME | アプリ名プロジェクト内でいくつか分ける場合につける(管理者向けユーザー向けetc) |
MODULE_NAME | アプリの下に属する。最低ひとつは必要なのだが分け方の基準が不明 |
mkdir PRJ_NAME cd PRJ_NAME
symfony init-project PRJ_NAME symfony init-app APP_NAME symfony init-module APP_NAME MODULE_NAME
しないと画像がうまく表示されない
環境情報
symfonyインストールディレクトリ | /var/www/html/symfory |
PEARインストールディレクトリ | /usr/share/php5-pear |
Alias /symfony/sf "/usr/share/php5-pear/data/symfony/web/sf" Alias /symfony "/var/www/html/symfony/web"
デバッグモードも備えられている。下がデバッグモード
http://192.168.22.131/symfony/index.php http://192.168.22.131/symfony/frontend_dev.php
Project→App→moduleの階層構造ができているらしい。というわけでモジュールを追加してみる。
symfony init-module アプリ名 モジュール名
http://192.168.22.131/symfony/index.php/mymodule
このままではデフォルトモジュールに転送されるだけなので独自の出力は一切できない。というわけで変更
pdocon: class: sfPDODatabase param: dsn: mysql:host=localhost;dbname=codezine phptype: mysql database: codezine username: root password: #for Postgres PDO connection pdocon: class: sfPDODatabase param: dsn: pgsql:host=localhost;dbname=homedb phptype: pgsql username: ユーザー名 password: パスワード
$con = $this->getContext()->getDatabaseConnection('pdocon');
actionの戻り値によりテンプレートを切り替えることができる。省略した場合は「アクション名Success.php」が呼ばれる。単なる名前との一致でファイルを探してきているだけ。VIEWが存在しないActionは以下のようにすればよい。
return sfView::NONE;
開発中止になってもうた。もはやこれから選択する余地はないが、後のフレームワークの土台にもなっていたりする。JavaのStruts利用経験があるならすんなり入れそう。