symfonyの始め方

Post on 20-Jun-2015

2.687 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

IT勉強会用スライドsymfonyの始め方

TRANSCRIPT

PHP MVC フレームワークsymfony の始め方

GOTTi@iNNX2009/04/05

(いきなり) symfony のデメリット

• PHP5 以降が必須 (symfony1.2 では5.2 以降 )

• 日本語の解説サイトがあまり多くはない

• ややメモリ使用量が多い

symfony の特徴• アジャイルな開発スタイルに向いてい

る• オブジェクト指向プログラミング• YAML• O/R マッパー

特徴 – アジャイル• ファイルが最初から適度に分散されて

いる(適当な粒度)→アクション、テンプレート、モデル /Peer 、フォーム、設定

• 各機能を付けたしながら全体を作り上げていくスタイルでも対応しやすい

特徴 – オブジェクト指向• PHP5 以降専用の恩恵• 例1.オブジェクトメソッドとクラス

メソッドの分離(モデルと Peer )• 例2.インターフェイス

Iterator 、 ArrayAccess などを自前クラスに実装できる

• 共有ライブラリを作りやすい

特徴 - YAML

• 設定ファイルの多くは YAML で記述→ http://ja.wikipedia.org/wiki/YAML

• 設定ファイルの記述の負担が少ない• テストデータを YAML で記述して読み

込む仕組み( Fixture File ) →構文( PHP や SQL )を意識せずにテストデータを作れ、再読み込みなども楽

特徴 – O/R マッパー• O/R マッパークラス群が自動生成され

る• symfony にて schema を定義

→ propel:build-all にてデータベースを生成

• O/R マッパーを介してデータベースのレコードを取得

symfony を始める 4 つのポイント

• 基本的な symfony コマンドを覚える• ファイルの構成と処理を記述する場所

のルールを把握する• フォームライブラリに慣れる• O/R マッパーに慣れる

ポイント – symfony コマンド

• symfony generate:app app 名• symfony generate:module app 名

module 名• symfony cc• symfony propel:build-all

開発初期で頻繁に使用するのはこの 4 つ

ポイント – ファイル構成• /app/app 名 /modules/module 名 /

  actions/   ・・このモジュールのアクション  templates/  ・・テンプレートファイル  config/    ・・このモジュールの設定

• /lib/model/  ・・モデル /Peer クラス• /lib/form/   ・・フォームクラス

ポイント – フォームライブラリ

• 使いこなした方が便利。ただし他のフレームワークへの応用などがあまりきかない。

• AdminGenerator を使用する場合は、理解必須

• ウィジェット・バリデータの一覧http://www.symfony-project.org/book/forms/1_2/en/A-Widgets http://www.symfony-project.org/book/forms/1_2/en/B-Validators

ポイント – O/R マッパー• ( Propel に限定) 条件文の書き方がポイント• Criteria クラスの定数・メソッド

http://propel.phpdb.org/docs/api/1.3/runtime/propel-util/Criteria.html 基本的にはここにある定数・メソッドで抽出条件を作成する。

• 複雑な条件文の場合は、 Criteria::CUSTOM• さらに複雑な場合は、直接 SQL を記述して実行

し、 Peer メソッドの populateObjects を呼び出す• 速度が要求される場合や、取得結果がモデルオブジェ

クトと大幅に異なる場合は、 populateObjects せずに、 PDO で直接レコードをフェッチする

Symfony 開発のルーティン(マクロ)

1. データ構造を大まかに設計2. URL 構造と画面遷移を大まかに設計3. 実装(ミクロなルーティン)

  どういった URL で何を見せるのかを先に設計し、それに合わせてモジュールを作成していく。

Symfony 開発のルーティン(ミクロ)

1. 設置・最初の app を生成、データベース接続情報の設定

2. schema.yml にスキーマを記述3. propel:build-all4. モジュールを生成5. モジュール内のアクション・テンプレ

ートを編集

以下 2 ~ 5 の繰り返し

その他の便利な機能• AdminGenerator• タスク• テスト• プラグイン

top related