-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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS