重要なことなので、最初に書いておきます。 この記事を読んでいる間にチケットが売り切れるといけないので、 今すぐPHP Matsuriのチケットを購入しましょう! チケット購入はこちら さて、今年もPHP Matsuriの季節がやってきました。 PHP Matsuriって何?と…
1. Symfony2 standardディストリビューション(確認時はPR11)をダウンロード 2. /app_dev.php/demo/ にアクセス→正常表示 3. src/Acme/DemoBundle/Controller/DefaultController.phpのindexAction()のreturnの前に以下の1行を追加 $this->container->get('r…
自分でも毎回分からなくなるのでメモ・・・。 Actionでは、レスポンスにsetSharedMaxAge()とsetPublic()をセット render('HelloBundle:Hello:index.html.twig', array('rand'=>rand())); $response->setSharedMaxAge('10'); $response->setPublic(); return …
git bisectを使うと、コミット履歴から「何らかのテスト」が初めて失敗するコミットを探し出すことができます。ちょうど、「Doctrine2 MongoDB ODMのDocumentManagerからcreateQuery()メソッドが無くなっている」という発言を見かけたので、これを例にやって…
各サブモジュールの中にさらにサブモジュールがある場合に、それらも再帰的にinit/updateするのをこのコマンドで一発で可能っぽいというのを先ほど知ったのでメモ。 http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html
日本Symfonyユーザー会で、公式サイトで毎週公開される「A week of symfony」というブログ記事の翻訳を毎週毎週やっています。この翻訳を手伝っていただける方が最近増えてきました。私以外で担当していただいた方々 Fivestarさん brtriverさん shishi4twさ…
Symfony2のオンラインドキュメントはSphinxを使っています。 Sphinxは高機能なドキュメントシステムで、コードのハイライト機能などはデフォルトのままでとても優秀です。1つ、Symfony2のドキュメントで独自に拡張機能を使っている部分があり、それがタイト…
symfony本の執筆合宿(@六本木ヒルズのWIRED CAFE)へ行ったら、自分以外全員Macというひどいいじめを受けたので、東京から新幹線で名古屋駅へ帰ってきたらその足でビックカメラ名古屋駅西店へ駆け込み、そのままMacBook Air 13インチを買ってお持ち帰りした…
NGK忘年会2010では、勉強会を企画運営して勉強する的なLTをしましたが、そんな私が最近「もっと勉強したいなぁ」と思っているネタをメモ的にリストアップ(今さら感があるものばかりですが・・・) Git(まだまだ修行が・・・) Vim GNU Screen zsh Redmine …
この記事は、Symfony アドベントカレンダー 2010 に参加しています。 Symfony Advent 2010 : ATND http://www.symfony.gr.jp/adventcalendar/2010 「えっ、いまさら?」 と思う方も 「おー!、やっと!」 と思う方もどちらもお待たせしました! 現在、主に日…
この記事は、Symfony アドベントカレンダー 2010 に参加しています。 Symfony Advent 2010 : ATND http://www.symfony.gr.jp/adventcalendar/2010 さて、今回はいきなりですが、Symfony2 と Doctrine2 を使って計測してみます。 この計測を行うには、以下の…
この記事は、Symfony アドベントカレンダー 2010 に参加しています。 Symfony Advent 2010 : ATND http://www.symfony.gr.jp/adventcalendar/2010 以前、DoctrineとPropelのパフォーマンス比較 - しんふぉにゃんという記事を書きました。その記事が2009年9月…
https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php charsetとかに対応していないっぽい。DB接続時(MySQL)に「set names utf8」を投げるには、Doctrine-DBALにあるMysqlSessionInitを有効にする。(なぜデフォ…
参加というか、言いだしっぺなので主催側ですが・・・。公式なレポートは以下をご参照ください。 http://www.symfony.gr.jp/blog/20111121-symfony2-workshop-1 以下はレポートにない、2次会以降の話と余談などを。 2次会、2.5次会、midnightも盛り上がりま…
Doctrine1では、有効桁数が15桁以上あるような大きな数値をdecimal型で正しく処理できない・・・。※チケットを作成する必要ありという個人的メモ
自分の部下には、「これ読んどけ!」と必ず渡しておきたい1冊です。 PHPの開発現場で実際に必要な知識を幅広くカバー さすがにこれで「全部」というわけにはいきませんが、書かれている内容はどれも「必要」 MVCフレームワークの用語や知識 必要最小限かつモ…
Symfony2で名前的に混乱しやすそうなのがKernelとHttpKernelで、 Kernelはアプリケーション全体のベースとなる HttpKernelは1つのHTTPリクエストのベースとなる という感じで、Kernelの方がベースよりです。これは説明するまでもないかもしれませんが、フロ…
Symfony2のconfigファイルでは、別のconfigファイルをインポートすることができます。 たとえばconfig_dev.ymlでは、共通設定であるconfig.ymlを以下のようにインポートしています。 imports: - { resource: config.yml } また、config_dev.ymlをよく見ると…
app/config/config_dev.ymlに次のように記述すると、リンクになります。 app.config: ide: macvim「macvim」だと「mvim://open〜」というURLでリンクされ、「textmate」だと「txmt://open〜」というURLになります。他の値を指定した場合、その値がファイルリ…
OAuth認証してAPIリクエストを送信している場合は、friendships/showでsource_idまたはsource_screen_nameのいずれも指定しなくてもいけるはずなんだけど、PearのServices_Twitterだとパラメーターの数が足りないと言われエラーになります。 http://apiwiki.…
symfony 1では、ORM Designerを使ってスキーマ設計→schema.yml書き出し→モデルやDBを生成(必要に応じてマイグレーション)というワークフローでした。こういったワークフローをDoctrine2を使った開発でもやりたいと思い、Doctrine2のコマンド等とあれこれ格…
テキストファイルの末尾の改行を削除する ファイル末尾の改行を削除 - Tetsujin’s blog $ perl -pi -e 's/\n$// if eof' (ファイル名) ※Doctrine2のドキュメントのソースコードの末尾が改行しないルールのようなのですが、Ubuntuのgeditなどで編集すると、ど…
Symfony2でテンプレートをレンダリングする場合、以下のようにやや長い名前でテンプレートを指定します。 $this->render('HelloBundle:Hello:index.twig');この指定はコロンで区切られた3つのパーツで構成されていて、 テンプレートのあるバンドルの名前 テ…
まず、DIエクステンションについては以下の記事を参照 Symfony2のDIエクステンション - しんふぉにゃん このDIエクステンションですが、Symfony2コアの各バンドルごとのDIエクステンション自体を拡張するうまいやり方は今のところ分かっていないのですが、コ…
routing.ymlでresource指定にて各バンドルのrouting.ymlをインポートしている場合、そこは独自に処理されてUrlMatcherとして展開されるので、コントローラーの呼び出しまでは実行されるようです。 しかし、コントローラーから通常の方法でビューをレンダリン…
(まだきちんと全容をつかめていないのですが)Symfony2のDI+バンドルのシステムには「エクステンション」という機構があって、DIコンテナから得られる設定を使ってバンドルの初期化などを行えます。これは、各バンドル内の「DependencyInjection」というデ…
DIコンテナを使っているのに、キャッシュディレクトリへの書き出しはそれぞれのコンポーネントが別々に直接ファイルを書き出しているのは何とかしたいなと思いつつ・・・。(Symfony Componentsのコンポーネントで、DIコンテナがなくても動作するように設計…
Doctrine2では、エンティティの値をデータベースへ保存する際にUnit Of Workパターンというデザインパターンの実装を使っています。 Unit of Work パターンと永続性の無視 (twitterで@vectorxenonさんからツッコミがありましたが)Doctrine1でもUnit Of Work…
orm/doctrine-mapping.xsd at master · doctrine/orm · GitHub このファイルを眺めると、Doctrine2のORMでどういったことが設定できるのか、なんとなく見えてきます。
Doctrine2では、エンティティの変更をトラッキングして最終的に必要な内容だけをDBに書き込むという仕組みがありますが、この「変更」のトラッキングにはいくつかオプションがあるようです。 http://www.doctrine-project.org/projects/orm/2.0/docs/referen…