-PHPフレームワークの所感 #contents *Ethna [#z812b3b7] 日本で開発されているフレームワーク。GREEで使われているので実績もある。なによりインストールや実践的な利用方法などの日本語ドキュメントがありがたい。 **インストール [#hc1747fe] -pear使ってインストールしましょ pear channel-discover pear.ethna.jp pear install ethna/ethna *Symfony [#addc0a9e] まだ1.0が出たばかり **インストール [#k04ecaed] -即効で使いたければアーカイブを解凍するだけのsandboxを利用せよ(この場合Updateを考えてはいけない)。とりあえずApacheのDocumentRoot以下で作業する。 -pearコマンドでインストールするのが一番楽。 pear channel-discover pear.symfony-project.com pear install symfony/symfony-beta -インストールが終ったらジェネレータを動かす。projectの作成でディレクトリなどを作成し、appの追加でアプリケーションの雛形追加 -以下で使うの定数の定義 |PRJ_NAME|プロジェクト名| |APP_NAME|アプリ名プロジェクト内でいくつか分ける場合につける(管理者向けユーザー向けetc)| |MODULE_NAME|アプリの下に属する。最低ひとつは必要なのだが分け方の基準が不明| -プロジェクトディレクトリの作成 mkdir PRJ_NAME cd PRJ_NAME -以下のsymfonyコマンドはすべてこのディレクトリで行うこと。 symfony init-project PRJ_NAME symfony init-app APP_NAME symfony init-module APP_NAME MODULE_NAME **httpd.confを設定 [#r362df7f] しないと画像がうまく表示されない 環境情報 |symfonyインストールディレクトリ|/var/www/html/symfory| |PEARインストールディレクトリ|/usr/share/php5-pear| -上記の環境はVine4のデフォルトなのでそれ以外の場合は読み替えること Alias /symfony/sf "/usr/share/php5-pear/data/symfony/web/sf" Alias /symfony "/var/www/html/symfony/web" **動作確認 [#pfc74d38] デバッグモードも備えられている。下がデバッグモード http://192.168.22.131/symfony/index.php http://192.168.22.131/symfony/frontend_dev.php **モジュールの追加 [#a85930fb] Project→App→moduleの階層構造ができているらしい。というわけでモジュールを追加してみる。 -モジュール追加 symfony init-module アプリ名 モジュール名 -動作確認(モジュール名をmymoduleとした場合) http://192.168.22.131/symfony/index.php/mymodule このままではデフォルトモジュールに転送されるだけなので独自の出力は一切できない。というわけで変更 **DB [#gebfc5a0] -databases.ymlに以下のように記述 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'); **テンプレートの切り替え [#l3074636] actionの戻り値によりテンプレートを切り替えることができる。省略した場合は「アクション名Success.php」が呼ばれる。単なる名前との一致でファイルを探してきているだけ。VIEWが存在しないActionは以下のようにすればよい。 return sfView::NONE; *Smartyの組み込み [#gd688033] *Mojavi [#q0cea06f] 開発中止になってもうた。もはやこれから選択する余地はないが、後のフレームワークの土台にもなっていたりする。JavaのStruts利用経験があるならすんなり入れそう。 #counter