TOPシステム開発> 実際にSymfonyを使ってみる
Symfony
PHP開発の秘訣フレームワーク活用術

第2回:Symfonyを例にしたフレームワークを使ったPHP開発

著者:オープンドリーム  三宅 泰裕   2007/5/31
前のページ  1  2  3  次のページ
実際にSymfonyを使ってみる

   ではSymfonyを用いて実際に開発を行ってみましょう。今回、例題として開発するシステムでは、簡単な名簿管理システムを作ります。

   実装する機能としては下記のようなものです。
  • ログイン
  • ログアウト
  • 名簿画面(登録、変更、削除、一覧表示)
  • ユーザ管理画面

表2:実装する機能


Scaffolfingを用いた名簿画面の作成

   今回はテーブルを2つ用意します。Symfonyはテーブルに関しては寛容で、Railsのような複数形の縛りはありません。

  • ログインユーザ用:user
  • 名簿用テーブル:meibo

表3:用意するテーブル

   テーブルを作成するのにはテーブルの情報をSymfonyに知らせなければなりません。テーブルのスキーマ「apps/config/schema.yml」を以下のように編集します。編集時の注意点はtabを使わないことです。YAMLはtabを使うことができないので、必ずスペースを用いてください。symfonyではスペース2つ分が要素の階層をあらわします。

【apps/config/schema.yml】
     propel:
      user:
        _attributes: { phpName: User }
        id:
        uname:     varchar(255)
        upass:     varchar(255)
      meibo:
        _attributes: { phpName: Meibo }
        id:
        name:      varchar(255)
        address:   longvarchar(255)
        tel:       integer
        created_at:

   次にモデルの作成を行います。コマンドプロンプトもしくはターミナル上で以下のコマンドを実行します。

php symfony propel-build-model

   これでモデルが作成されました。apps/lib/model/以下にMeibo.php,MeiboPeer.php,User.php,UserPeer.phpの4つのファイルが作成されています。これらのファイルを元にSymfonyはテーブルとクラスのマッピングを行います。

php symfony propel-build-sql

   次に、生成したSQLを実行します。

php symfony propel-insert-sql

   これでテーブルが作成されました。では、実際にアプリケーションの土台を作成するためにScaffolding機能を用いて、モデルから自動生成してみましょう。

php symfony propel-generate-crud frontend meibo Meibo

   ここでの書式は「propel-generate-crudアプリケーション名 → コントローラ名 → モデル名」という書式になっています。この例ではsf_sandboxのデフォルトのアプリケーション名であるfrontendにMeiboモデルを元に「meibo」というモジュールの土台を作るという意味になります。

   ここまでコマンドばかり実行してきましたが、これでアプリケーションができたのか、実際に確認してみましょう。まず下記のコマンドを入力して、Symfonyのキャッシュをクリアにします。

php symfony cc

   次に下記のURLにWebブラウザからアクセスしてみます。

http://あなたのサーバ/sf_sandbox/web/meibo

   以下のような画面になれば簡単な名簿はでき上がりです。

名簿の画面
図3:名簿の画面
(画像をクリックすると別ウィンドウに拡大図を表示します)

前のページ  1  2  3  次のページ


株式会社オープンドリーム チーフトレーナー 三宅 泰裕
著者プロフィール
株式会社オープンドリーム  チーフトレーナー  三宅 泰裕
Western Institute of Technology at Taranaki卒業。
プログラムはVisual Basicからという意外と今時なプログラマで、現在は主に教育を担当する現役講師。趣味もプログラミングというから、随分重傷。PHPに出会い、Linux、そしてオープンソースに魅せられる。そして、Ajaxだ!と思った時にばたりとSymfonyに出会いアジャイルの虜に。Ruby on Railsを始め色々なWebアプリケーションフレームワークをつまみ食いしては、自社の開発案件や教育事業に活かしている。「技術を楽しめる教育の創造」をモットーに奮闘中。


INDEX
第2回:Symfonyを例にしたフレームワークを使ったPHP開発
  Symfonyの特徴とインストール方法
実際にSymfonyを使ってみる
  ログイン画面の作成