2010-10-01から1ヶ月間の記事一覧

PearのServices_TwitterでOAuth認証している場合のfriendships/show

OAuth認証してAPIリクエストを送信している場合は、friendships/showでsource_idまたはsource_screen_nameのいずれも指定しなくてもいけるはずなんだけど、PearのServices_Twitterだとパラメーターの数が足りないと言われエラーになります。 http://apiwiki.…

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

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

メモ

テキストファイルの末尾の改行を削除する ファイル末尾の改行を削除 - Tetsujin’s blog $ perl -pi -e 's/\n$// if eof' (ファイル名) ※Doctrine2のドキュメントのソースコードの末尾が改行しないルールのようなのですが、Ubuntuのgeditなどで編集すると、ど…

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コンテナがなくても動作するように設計…

Doctrine2とDoctrine1のUnit Of Work

Doctrine2では、エンティティの値をデータベースへ保存する際にUnit Of Workパターンというデザインパターンの実装を使っています。 Unit of Work パターンと永続性の無視 (twitterで@vectorxenonさんからツッコミがありましたが)Doctrine1でもUnit Of Work…

Doctrine2のORMマッピングXSD

orm/doctrine-mapping.xsd at master · doctrine/orm · GitHub このファイルを眺めると、Doctrine2のORMでどういったことが設定できるのか、なんとなく見えてきます。

Doctrine2のエンティティの変更トラッキング

Doctrine2では、エンティティの変更をトラッキングして最終的に必要な内容だけをDBに書き込むという仕組みがありますが、この「変更」のトラッキングにはいくつかオプションがあるようです。 http://www.doctrine-project.org/projects/orm/2.0/docs/referen…

Doctrine2のアノテーションリファレンス

http://www.doctrine-project.org/projects/orm/2.0/docs/reference/annotations-reference/en ※このファイルを翻訳していますが、ちょっと時間がかかりそう・・・。

バンドルを作るコマンド

$ 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…

PHP Matsuriに参加しました&やったことなどまとめ #phpmatsuri

php

PHP Matsuri 2010に参加しました。 いろいろやったことなど Symfony2のドキュメント翻訳をこっそりやった→ symfony-docs-ja/contributing/documentation at master · symfony-japan-old/symfony-docs-ja · GitHub @brtriver、@cakephperとの秘密プロジェクト…

filter_var()でURLのフォーマットチェック(とバグ)

PHPにはfilter_var()という関数があって、この関数を使うとURLのフォーマットチェックができます。(PHP 5.2.0以降) PHP: filter_var - Manual ですが、この関数のURLフォーマットチェックにはバグがあって、ドメイン部分にハイフンがあると「URLではない」…

Symfony2コマンド一覧

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

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

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