Weitere ähnliche Inhalte Ähnlich wie Introduction of symfony development process & What's symfony 1.3? (15) Mehr von Kousuke Ebihara (7) Introduction of symfony development process & What's symfony 1.3?7. symfonyの各バージョン symfony 1.0 : 2007年から2010年の3年間バグ修正が続けられる旧安定版 symfony 1.1 : 1.2 への移行準備用のバージョン。PHP 5.1 以前で動く最終バージョン。2009 年 6 月までの1 年間保守がおこなわれた。セキュリティフィックスは 2010 年まで。 symfony 1.2 : フォームフレームワークや Propel 1.3 へのバージョンアップ、 Doctrine のサポートなど、 1.0 との差異が大きい。このバージョン以降、1.x はPHP 5.2 以上必須に。 symfony 1.3 : 1.2 との互換性を意識した機能改善バージョン。デフォルトの ORM が Propel から Doctrine になる。現在開発中。 25. symfony 1.3 開発の流れ フェーズ1: Feature brainstorming user voice ページから投票を受け付け、コアチームはそれを参考に新機能を決定するhttp://symfony.uservoice.com/pages/symfony フェーズ2: Development フェーズ3: Release process 機能開発をやめ、 1.3 のリリースに向けてバグを直していく http://www.symfony-project.org/blog/2009/01/25/about-symfony-1-3より 26. 1 day = 1 ticket 一日のわずかな時間で、コントリビュータにチケットを消化してもらうイベント ドキュメントの改善や、リリースサイクルの改善、自動テストのカバレッジ向上と、バグを直していくことでコアチームが機能開発に専念できるようにすることが目的 毎月 3 人を表彰(景品が貰える) symfony本だったり Doctrine 本だったり Amazon のギフト券だったり PHP の T シャツだったり http://www.symfony-project.org/blog/2009/07/01/symfony-community-event-1-day-1-ticketより 28. Symfony Components Symfony 2 ではフレームワークを支える部品をSymfonyとは独立して利用できるようにする 現時点でリリース可能なコンポーネントを本体に先駆けてリリースしている それぞれのコンポーネントは、充分すぎるほどのドキュメントとテストと一緒にリリースされている 詳細はhttp://components.symfony-project.org/ 30. dev 環境では新しくクラスを追加してもsymfony cc をしなくてよくなった symfonyのオートローディングで見つけられなかったクラスは、sfAutoloadAgainという新しい機構によりもう一度オートロードし直して見つけてくれる dev 環境では設定ファイルの変更も即座に反映されるので、開発時にsymfony cc し忘れてハマるのはルーティングルールの変更時だけになる?(といいね) 32. フォームウィジェットのラベルから _id が消える 自動生成されたフォームは、テーブルのフィールド名に応じて、各ウィジェットのラベル名が自動的に付加される 1.3 からは他テーブルとのリレーションに用いられる ****_id のラベルから _id が取り除かれる 34. 使用するフォームフィールドが簡単に指定できるようになった sfForm::useFields() が追加された configure() メソッド内で以下のように記述$this->useFields(array('title', 'body', ‘file’)); 今までは、使用しないフォームフィールドをunset($this[‘id’], $this[‘member_id’], …);とかしていく必要があった この方法だと、モデル側でカラム追加があった場合に、フォームの更新が漏れていると意図しないフォームフィールド(フォームから入力させるべきでない項目など)が表示される場合があった 実際 Doctrine 化のついでにTimestampableを全モデル適用したときに困ったことになった 36. フォーム系クラスの親子関係が変わった sf1.3 ← symfonyに特化しないフォームクラス (sf1.1 からだけど) sfForm ← symfonyに特化したフォームクラス (イベント通知をおこなう) sfFormSymfony ← プロジェクトに特化したフォームクラス BaseForm ← ? sfFormObject sfFormDoctrine BaseFormDoctrine Base{Model}Form ※矢印は だと思ってください>< {Model}Form 41. プラグインがデフォルトで無効になった sfProjectConfiguration::enablePlugins() で ON にしたいプラグインを指定していく デフォルトではsfDocrtinePluginかsfPropelPluginしか有効にならない sfProtoculousPluginなどを使う場合は明示的に指定する必要がある ※sf1.2 からのアップグレードの場合はProjectConfiguration内でsfProjectConfiguration::enableAllPluginsExcept()を呼んでいるはずなので影響なし ちなみにplugin:installタスク、plugin:uninstallタスクを実行すると、ProjectConfiguration.class.phpを自動的に書き換えるというアグレッシブさ 43. symfony 1.3 + Doctrine デフォルト ORM が Doctrine 1.2 に Propel を使いたい場合は、generate:projectタスクで --orm=propel オプションを指定する Doctrine 1.2 の新機能は川原君が発表しそうな気がするのでここでは割愛 そのモデルのフォームとフィルタを生成するかどうかをスキーマで指定できるようになった(ゴミファイルが減りますね) 存在しないモデル(削除された、リネームされた)に関するファイルをクリアするタスクが追加された 日付型カラムに関するゲッターとセッターがDateTimeオブジェクトを受け付けるようになった 47. OpenPNE3 でsymfony 1.3 が使いたくなってきた方々へ 残念ながらsymfony 1.3 は 11 月リリース(Doctrine と違っておいそれと開発中バージョンを使用するわけにはいかない) OpenPNE3 では beta がリリースされたあたりからバージョンアップの準備を進めていきたいところ symfony 1.3 で魅力的な機能があれば OpenPNE3 で先行して対応するというアプローチは有りだと思います