For Want Of A Better Word

symfony1.4

      2015/04/18

ディレクトリ構造

プログラミングするファイルは主にappsの中に。

  • apps -アプリケーションディレクトリ
    • app_name(アプリケーション名・複数可)
      • config
      • modules
        • module_name
          • actions (アクションクラス)★C
          • config (moduleの設定)
          • template (アクションのテンプレート)★V

DB関連のモデルは下記。

  • data(db接続モデル、他データ)★M

webに公開するスタティックなものは下記。

  • web(index.php(フロントコントローラーもここ。))

その他

  • cache
  • batch
  • doc
  • lib
  • log

synfonyのMVC

シンフォニーは一応MVC。どれがどれって所がちょっと曖昧。多分下記。

MはDB関連ファイルのdata以下
Vはアクションのテンプレート
Cはアクション

railsやCakeと同じ感じか。
appとモデルが分離しているのがなんか分かりづらいな。

リクエストと処理の流れ

  1. コンテキスト(各種オブジェクトを入れるオブジェクトの作成)
  2. コントローラーオブジェクトの初期化・ルーティングオブジェクトの初期化(アクセスされたURLからどのモジュールのどのアクションを実行するのかを決定する。)
  3. ルーティングの情報をもとにコントローラーが処理を開始する。
    1. フィルタの実行⇒actionの実行
  4. ビューの初期化・実行。

アクション詳細

  • 場所:app/modules/action/action.class.php

[命名規則]

  • クラスファイル名:<アクション名>.class.php
  • クラス名:<アクション名>Actions
  • メソッド名: executeメソッド名

⇒URL http://xxxxxx/index.php/Action名/メソッド名(デフォルトindex)

バリデートもアクション(C)に記述する。

(アクション補足)ユーザー認証機能について

・ログインが必要かどうかの設定
⇒ app/config/security.yml

・モジュール毎の認証不要設定
⇒ app/modules/module_name/config/security.yml で 「is_secure: off」と設定。

ビュー詳細

  • 「app/config/view.yml」 「app/modules/module_name/config/view.yml」でcssやlayoutの有無、meta等を設定で記述できる。
  • actionのメンバ変数は、templateの中で利用できる。
  • cakeのような各種ヘルパーあり。

ふー。

外部ファイル(パーシャル、コンポーネント、スロット)

  • パーシャル
    • 渡された変数を使用してHTMLを作成。パーシャル側で使う変数は引数として渡す。
    • templates以下に作成。
    • ファイル名は「_」開始。
    • 呼び出しは「include_partial()」を利用
  • コンポーネント
    • 渡された変数を使用してHTMLを作成。コンポーネント内部で変数作成のロジックを記述可能。(分離HTMLパーツというより、アクションパーツ。共通アクション定義。という感じ。)
    • ファイル名:コンポーネント名.action.class
    • テンプレートファイル:「_」開始
    • 呼び出し方:「include_component」
  • コンポーネントスロット
    • モジュール毎にコンポーネントを切り替える仕組み
    • view.ymlにアクション毎にキーとバリューを設定する。ソースではキーを呼び出すだけだが、設定に応じて呼び出されるテンプレートが変わる。
  • スロット
    • 予めHTML部品を作成し、あとから利用する。

Model詳細

つづく…

その他

debugモード

デバッグモード有効で。
URLのフロントエンドコントローラー名の拡張子の前に「_dev」をつけると、
開発モードで開ける。

http://example.com/frontend_dev.php/モジュール/アクション

 - php, symfony

  関連記事

php-logo
C言語_概要まとめ

日経ソフトウェア 2011/11月号より ◎ 学習の目的—&#821 …

php-logo
phpネーミングルールメモ

ネーミングルールを再確認。最低限下記を覚えておけばよいかな。 [参考]Zend …

mysql-logo
dotCloudにWordPressをインストール。

【参考】http://www.glidenote.com/archives/13 …

php-logo
ルーンチェックサム ルーンアルゴリズム

Luhnアルゴリズムは、様々な識別番号の認証に使われている単純なチェックサム方式 …

php-logo
PHPの日付計算

[日付比較] http://ameblo.jp/hyperdev/entry-1 …