第8回 Symfonyユーザー会IRC集会を開催しました

Symfonyに関するアレコレを話し合うIRC集会の第8回を、9/26(日)の21時~23時に開催しました。 以下、IRC集会の内容のまとめです。

まとめ

symfony 1.4.8/1.3.8

  • 1.4.7はバグのあるバージョンなので使わない。
  • Doctrineのコアをコンパイルする機能が搭載された。
    • 使い方は以下

まずsfTaskExtraPluginをインストール

$ php symfony plugin:install sfTaskExtraPlugin

doctrine:compileを実行

$ php symfony doctrine:compile

doctrine:compileの完了時メッセージで表示されるコードをProjectConfiguration.class.phpのsetupに追加

  • Doctrineコアをコンパイルしたファイルは835KBになった。
    • モデル1個だけでのテストプロジェクトでは、コンパイルコアを使うとやや実行時間が長くなった。
    • 実案件レベルで効果を検証する必要がある。

Symfony2の設定ファイルのデフォルトフォーマットの議論

  • Default format for configurations
    • MLではXML派とYAML派。ただしfabienさんはYAMLは入門者には扱いづらいという意見あり。
    • IRC集会の参加者では、YAMLが使いやすいからYAMLでよいのでは、という意見。

Symfony2のサンドボックスPR3

  • hello/config/config.ymlに「assets_version」という設定項目
  • HttpCacheを有効にしても、hello/cache/http_cacheディレクトリにキャッシュファイルが生成されない
    • 要調査
    • (2010/9/27追記) から、Cookieが残っているのが原因ではないかとアドバイスがあり、別のブラウザでアクセスしたところhttp_cacheディレクトリ内にキャッシュファイルが生成され、レスポンスも大幅に速くなりました。

Symfony2を試されている方

Symfony2でのモデルアクセスコードを記述する場所

  • Doctrine2の説明で、エンティティクラスではなくコントローラーにDQLを書いている。
    • symfony 1.xのように~Tableのようなクラスはないのか?(自分で用意する?)
    • (2010/9/27追記) から、EntityManagerのgetRepository()を使ってレポジトリのメソッドを使う形になるとアドバイス頂きました。

EntityRepositoryを使ってデータを取得する。

// $em = $this['doctrine.orm.entity_manager']; // $emはEntityManager
$em->getRepository('Domain\Model\User')->getAllUsers();
 

参考:Doctrine - Reference - Working with Objects - Custom Repositories

Symfony2のAPIドキュメントシステム

  • Symfony2 API(PR3)
    • 見やすい。
    • symfony 1.xのAPIドキュメントも、同じ形式で作れないか?

LithiumのAOPとSymfonyのEventDispatcher

  • LithiumのAOPは、filterを使ったコアの拡張
  • これに相当するSymfonyの機能は、EventDispatcher
  • どちらも、コア側で拡張ポイントを用意している必要がある

SymfonyのEventDispatcherでClosureを使えるのか?

  • 使える。
    • call_user_func()で呼び出せるものなら何でもOK。

次回

次回は2週間後、10/10(日)の21時~23時で開催予定です。

インデックス

Document Index

関連ページリスト

Related Pages

日本語ドキュメント

Japanese Documents

リリース情報
Release Information

Symfony2 に関する情報(公式) Books on symfony