Symfony2

そのうち調べるメモ

1. Symfony2 standardディストリビューション(確認時はPR11)をダウンロード 2. /app_dev.php/demo/ にアクセス→正常表示 3. src/Acme/DemoBundle/Controller/DefaultController.phpのindexAction()のreturnの前に以下の1行を追加 $this->container->get('r…

Symfony2でESIを動作させる手順

自分でも毎回分からなくなるのでメモ・・・。 Actionでは、レスポンスにsetSharedMaxAge()とsetPublic()をセット render('HelloBundle:Hello:index.html.twig', array('rand'=>rand())); $response->setSharedMaxAge('10'); $response->setPublic(); return …

Symfony2ドキュメントのビルド用にconfigurationblock拡張を組み込む

Symfony2のオンラインドキュメントはSphinxを使っています。 Sphinxは高機能なドキュメントシステムで、コードのハイライト機能などはデフォルトのままでとても優秀です。1つ、Symfony2のドキュメントで独自に拡張機能を使っている部分があり、それがタイト…

第1回 Symfony2勉強会に参加した

参加というか、言いだしっぺなので主催側ですが・・・。公式なレポートは以下をご参照ください。 http://www.symfony.gr.jp/blog/20111121-symfony2-workshop-1 以下はレポートにない、2次会以降の話と余談などを。 2次会、2.5次会、midnightも盛り上がりま…

KernelとHttpKernel、その辺の起動順序

Symfony2で名前的に混乱しやすそうなのがKernelとHttpKernelで、 Kernelはアプリケーション全体のベースとなる HttpKernelは1つのHTTPリクエストのベースとなる という感じで、Kernelの方がベースよりです。これは説明するまでもないかもしれませんが、フロ…

Symfony2のconfigファイルにおけるimportsの挙動(DIのconfig)

Symfony2のconfigファイルでは、別のconfigファイルをインポートすることができます。 たとえばconfig_dev.ymlでは、共通設定であるconfig.ymlを以下のようにインポートしています。 imports: - { resource: config.yml } また、config_dev.ymlをよく見ると…

Symfony2のデバッグモードのエラー画面で、ファイルのパスを物理ファイルにリンクする

app/config/config_dev.ymlに次のように記述すると、リンクになります。 app.config: ide: macvim「macvim」だと「mvim://open〜」というURLでリンクされ、「textmate」だと「txmt://open〜」というURLになります。他の値を指定した場合、その値がファイルリ…

Doctrine2を使った開発のワークフローで悩み中

symfony 1では、ORM Designerを使ってスキーマ設計→schema.yml書き出し→モデルやDBを生成(必要に応じてマイグレーション)というワークフローでした。こういったワークフローをDoctrine2を使った開発でもやりたいと思い、Doctrine2のコマンド等とあれこれ格…

Symfony2のテンプレートレンダリング時の名前の指定

Symfony2でテンプレートをレンダリングする場合、以下のようにやや長い名前でテンプレートを指定します。 $this->render('HelloBundle:Hello:index.twig');この指定はコロンで区切られた3つのパーツで構成されていて、 テンプレートのあるバンドルの名前 テ…

コアのDIエクステンションでの設定を、自前のDIエクステンションで変更する

まず、DIエクステンションについては以下の記事を参照 Symfony2のDIエクステンション - しんふぉにゃん このDIエクステンションですが、Symfony2コアの各バンドルごとのDIエクステンション自体を拡張するうまいやり方は今のところ分かっていないのですが、コ…

Symfony2のKernelでregisterBundles()で登録していなくても、ルーティングに記述しているコントローラーまでは呼び出せる

routing.ymlでresource指定にて各バンドルのrouting.ymlをインポートしている場合、そこは独自に処理されてUrlMatcherとして展開されるので、コントローラーの呼び出しまでは実行されるようです。 しかし、コントローラーから通常の方法でビューをレンダリン…

Symfony2のDIエクステンション

(まだきちんと全容をつかめていないのですが)Symfony2のDI+バンドルのシステムには「エクステンション」という機構があって、DIコンテナから得られる設定を使ってバンドルの初期化などを行えます。これは、各バンドル内の「DependencyInjection」というデ…

Symfony2で、キャッシュディレクトリへ書き出している処理

DIコンテナを使っているのに、キャッシュディレクトリへの書き出しはそれぞれのコンポーネントが別々に直接ファイルを書き出しているのは何とかしたいなと思いつつ・・・。(Symfony Componentsのコンポーネントで、DIコンテナがなくても動作するように設計…

バンドルを作るコマンド

$ php app/console init:bundle (名前空間) # 例 $ php app/console init:bundle Application\\HelloBundle $ php app/console init:bundle Bundle\\TestBundle init:bundleの後ろのパラメーターは名前空間。名前空間に対応するディレクトリにバンドルの雛…

Doctrine2のschema:updateとイントロスペクション

PHP MatsuriでKrisのワークショップ中に気になった「doctrine:schema:update」ですが、Doctrine2のマニュアルを読んだら以下のように書いてありました。http://www.doctrine-project.org/projects/orm/2.0/docs/reference/tools/en#database-schema-generati…

Symfony2コマンド一覧

自分用メモ doctrine系 ネームスペース コマンド 内容 クラス doctrine:database doctrine:database:create configで設定したデータベースを作成する doctrine:database:drop データベースをDROPする doctrine:schema doctrine:schema:create エンティティの…

Symfony2のコマンド(タスク)システム

symfony 1.xでシステムを開発する場合、結構手放せないのがタスクの仕組みです。組み込みのコマンドはもちろん、バッチ処理から、ちょっとしたヘルパータスクなど、私はシステムを開発する上で結構使っています。このタスクシステム、Symfony2ではどうなって…

Symfony2のいいところ(シンプルな点)

参考: Fivestarさんの Symfony2のいいところ - ゆっくり*ゆっくり OSC Nagoya、Tokyo/FallでSymfonyユーザー会枠のセミナーの一部を担当する予定ですが、そこでSymfony2の紹介をやろうと思い、プレビューリリース2のキャッシュ機能を試しています。ただ、ま…