汎用設定値を読み書きする プラグイン + α 日本Symfonyユーザー会 後藤 秀宣(@hidenorigoto)
質問 プロジェクトごとに共通するモデル(テーブル) って使ってますか?
もくじ <ul><li>なぜプラグインにするのか?
最初に sfTaskExtraPlugin
スキーマの定義とモデルの生成
ライブラリメソッドの追加
タスクの追加
まとめ </li></ul>
なぜプラグインにするのか? <ul><li>複数のプロジェクトで使い回しやすい
スキーマ、モデル、タスク等までもひとまとめにできる </li></ul>
<ul><li>最初に sfTaskExtraPlugin </li></ul><ul><li>php symfony plugin:install sfTaskExtraPlugin
プラグイン関係のディレクトリ構造をまとめて作ってくれる -> php symfony generate:plugin sfSettingTablePlugin
プラグインを有効化する ->config/ProjectConfiguration.class.php </li></ul>
Upcoming SlideShare
Loading in …5
×

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

1,296 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,296
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

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

×