• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
 

symfonyで汎用設定値を読み書きするモデル等をプラグインにした話

on

  • 1,237 views

 

Statistics

Views

Total Views
1,237
Views on SlideShare
1,234
Embed Views
3

Actions

Likes
0
Downloads
2
Comments
0

1 Embed 3

http://www.sfexception.com 3

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    symfonyで汎用設定値を読み書きするモデル等をプラグインにした話 symfonyで汎用設定値を読み書きするモデル等をプラグインにした話 Presentation Transcript

    • 汎用設定値を読み書きする プラグイン + α 日本Symfonyユーザー会 後藤 秀宣(@hidenorigoto)
    • 質問 プロジェクトごとに共通するモデル(テーブル) って使ってますか?
    • もくじ
      • なぜプラグインにするのか?
      • 最初に sfTaskExtraPlugin
      • スキーマの定義とモデルの生成
      • ライブラリメソッドの追加
      • タスクの追加
      • まとめ
    • なぜプラグインにするのか?
      • 複数のプロジェクトで使い回しやすい
      • スキーマ、モデル、タスク等までもひとまとめにできる
      • 最初に sfTaskExtraPlugin
      • php symfony plugin:install sfTaskExtraPlugin
      • プラグイン関係のディレクトリ構造をまとめて作ってくれる -> php symfony generate:plugin sfSettingTablePlugin
      • プラグインを有効化する ->config/ProjectConfiguration.class.php
      • スキーマの定義とモデルの生成
      • プラグインディレクトリ内の config/doctrine/schema.yml に記述する ->プロジェクト本体の php symfony doctrine:build –all で、モデル、フォーム、フィルタークラス群の生成と、DBへのテーブル生成が行われる
      • このschema.ymlは、プロジェクト本体のschema.ymlとは独立していることに注意
      • ただし、モデルクラスはプロジェクトのlib内にも生成される
    • スキーマ
      • ライブラリメソッドの追加
      • プラグイン内のlib/model/doctrine/~.class.phpにメソッドを追加 ->プロジェクトのlib/model/doctrine/~.class.phpは、プラグインのクラスを継承している
      • プラグインのレコードクラスはインスタンス化できない!(abstract) ->プロジェクト内のレコードクラスがあるものと仮定
    • ライブラリメソッド
      • PluginSettingTable::get($name)
      • PluginSettingTable::set($name, $text)
      • PluginSettingTable::del($name)
      • タスクの追加
      • プラグインディレクトリのlib/taskにタスクのクラスファイルを配置すると、プロジェクト本体のタスクとして呼び出せる
    • タスク
      • php symfony setting:get (name)
      • php symfony setting:set (name) (text)
      • php symfony setting:del (name)
      • php symfony setting:get-all
    • まとめ
      • 複数のプロジェクトで使い回すライブラリで、モデルやタスクをひとまとめにしておきたい場合はプラグインが便利
    • Symfonyユーザー会へご参加ください!
      • IRC集会などやっています
      • メーリングリストに是非ご参加ください! (symfonyに関する質問などOK) http://groups.google.com/group/symfony-users-ja