Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

Symfony2

UPGRADE-2.2.mdをざっと訳してみた

最新の和訳は以下を参照してください。 translations/UPGRADE-2.2.ja.md at master · shimooka/translations · GitHub ちらほらとSymfony2.2の話が出てきていますが、Symfony2.1の時と同様にUPGRADE.mdをざっと訳してみました。 訳したMarkdownファイルはGit…

Symfony2でDoctrine2のFilterを使う

Doctrine2.2からSQLレベルで作用するFilterが使えるようになっています。このFilterでは強制的に「クエリ条件(WHERE句)」を追加することができ、Entityに定義した関連Entityの取得やDQLで発行されるSELECT文に対して追加されます。 で、論理削除を意味するカ…

Symfony2からDoctrineのPDOオプションを指定する

Symfony2にはデフォルトでDoctrine2を使用するようになっていますが、そのDoctrine2は内部でPDO使用しています。んで、そのPDOにはPHP: PDO::setAttribute - Manualにあるように、色々なオプションを付けることで動作を変更できます。 Symfony2からDoctrine2…

UPGRADE-2.1.mdをざっと訳してみた

UPGRADE-2.1.mdは不定期に更新されているようです。最新の和訳は以下を参照してください。 translations/UPGRADE-2.1.ja.md at master · shimooka/translations · GitHub https://github.com/symfony/symfony/blob/master/UPGRADE-2.1.mdを見てみると結構面…

Symfony2のFormTypeでラジオボタンの属性を付ける

なんかタイトルの日本語がおかしい気もしますが。。。 忙しい人のための解決法超概要 デフォルトのフォームテーマ(form_div_layout.html.twig)では、choice_widgetブロック内でexpandedの場合に改めてform_widget関数を呼び出しているが属性情報を引き継いで…

Symfony2のコントローラをサービス化した時のRouteアノテーション

ほとんど個人的備忘録。 "symfony2 controller service"あたりでググってみると色々と出てきますが、以下のサイトにうまくまとめられています。 Symfony2: Testing Your Controllers — Matthias Noback - Blog ポイントは以下の3つ。 コントローラはSymfony\…

Symfony2のドキュメントをbuildする

先日Symfony2本家サイトが落ちてましたが、ドキュメントを参照できなくなるのはかなり辛いです。逆にPHPはマニュアルがあちこちのサイトに乗っかってて、なかなか本家に辿りつけないわけですが:-( で、ドキュメントをダウンロードしておこうと思ったらPDF形…

Symfony2のBundleインストール時に"fatal: unable to connect to github.com"が発生する

Subversionで管理している*1Symfony2を使った作成中のWebアプリケーションがあり、別サーバでcheckout後、環境構築しようとして躓いたのでメモ。 現象 bin/vendors installを実行したところ、とあるBundle(今回はGenemuFormBundle)だけ"fatal: unable to con…

Symfony2でCSVダウンロードいろいろ

どのフレームワークを使おうが使うまいが、毎回必要になってる気がするCSVダウンロードですが、Symfony2でどう実装したら良いのかまとめてみました。 今回の環境 PHP5.4.3 Symfony2.0.15 Controllerで出力フォーマットを判定 まずは一番素直でベタなやり方で…

Symfony2のFormTypeで日付フォーマットと妥当性の検証をする

このエントリはSymfony2.0.12でのお話です。2012/05/30にリリースされたSymfony2.0.15で不正な日付がエラーになるよう修正されました。このエントリ下部にある追記2を参照してください。 via. Twitter / @shimooka: timestamp型のカラムに対してYYYY/MM/ ...…

Symfony2でjQuery UIを簡単に扱うGenemuFormBundleを試してみた

KnpBundlesでjQueryを扱うBundleを探していたら、何だかいい感じっぽいGenemuFormBundleというのが見つかったので試してみました。 GenemuFormBundle by genemu | KnpBundles 今回はjQuery UIのDatepickerを使うまでの手順をまとめてます。 GenemuFormBundle…

複合主キーを持つテーブルのCRUD

Symfony2/Doctrineのドキュメントは基本的に単一カラムを主キーとするテーブルが対象となっていて、複合主キーを持つテーブルに対する説明はかなり少なくて、あったとしてもサラっと流されてしまってる感じです。まあ、エラーメッセージでググれば情報は大概…

データベースからデータを取得するカスタムFormTypeをサービスに登録して使う

前のエントリの続き。 カスタムFormTypeのコンストラクタ引数にDoctrine\ORM\EntityManagerオブジェクトを渡せばOK。 以下、都道府県を選択するカスタムFormTypeを作る場合の例。 手順1:Symfony\Component\Form\AbstractTypeのサブクラスを作成する 引数がD…

サービスに登録したカスタムFormTypeを使う

via. カスタムフォームフィールドタイプの作成方法 | Symfony2日本語ドキュメントやってみたメモ。基本的な流れは以下のとおり。 手順1:Symfony\Component\Form\AbstractTypeのサブクラスを作成する コード全体は以下のとおり。AbstractTypeクラスはSymfony…

doctrine:generate:crudでDoctrine\ORM\ORMException(Unknown Entity namespace)が発生する

自分用メモ。 新しいbundleにEntityクラスを追加し、以下のようにdoctrine:generate:crudを実行すると $ php app/console doctrine:generate:crud --entity=AcmeSampleBundle:Sample --route-prefix=somewhere --with-write --no-interaction [Doctrine\ORM\…

DateTypeのformatに"yyyy年MM月dd日"を指定しても"yyyy-MM-dd"扱いされる

FormTypeって、深いですね。。。 で、タイトルのとおりなんですが、DateTypeのformatに"yyyy年MM月dd日"を指定しても"yyyy-MM-dd"扱いされるんですね。

「既存データベースからエンティティを生成する」で偉い人教えて!

via. 既にあるデータベースからエンティティを生成する方法 | Symfony2日本語ドキュメント環境はPHP5.3.10+Symfony2.0.10。 既存データベースからエンティティを生成する場合、以下の手順が示されています。 $ php app/console doctrine:mapping:convert xm…

generate:bundleのformatパラメータとDependencyInjection下のExtension.phpの中身

前のエントリの続きです。 追記にも書きましたが、@hidenorigotoさんからpullリクエストをもらい、原因が判りました。ありがとうございます:-) 直接の原因 問題となった部分ですが、 https://github.com/hidenorigoto/Symfony2_sample/commit/50635e804e4cfa…

Symfony2で権限の組み合わせを満たす場合のみアクセスを許可したい

Symfony2では権限によるアクセス制御はapp/config/security.ymlなどにある"access_control"で指定しますが、直下のrolesには複数の権限が設定できます。 security: access_control: - { path: ^/foo/bar/, roles: [ROLE_A, ROLE_B]} ただし、このrolesって"O…

No encoder has been configured for account

自分用メモ。データベースを使った認証処理を試し中に出てきたエラー。 まさにエラーメッセージの通り"アカウント用のエンコーダが設定されていない"ということなんですが、この「account」って何や?状態。。。 ここで言う「account」はsecurity.ymlのencod…

Symfony2で複数EntityManager利用時にBundleを新規追加した時の注意点

自分用メモ。 Symfony2で複数のEntityManagerを利用している場合、generate:bundleで新しくBundleを追加してもconfig.ymlのdoctrine.orm.entity_managers.*.mappingsには追加されない。手動でBundleを追加する必要がある。 以下、config.ymlの例。 : doctri…

PDO_PGSQL利用時にclient_encodingを指定する

ちょっと悩んでましたが難しく考えすぎでした。。。 とりあえず、"postgresql.conf内にclient_encodingを定義しておく"というのを除いて、2パターンはありますね。 環境変数"PGCLIENTENCODING"を利用する httpd起動時に環境変数"PGCLIENTENCODING"が設定され…

Symfony2で複数DBに接続する

最近になってようやくSymfony2を始めました。現在blogチュートリアルを写経中です(MySQLではなくPostgreSQL使ってますが。。。)。で、DBへの接続・CRUDを一通り確認した後、複数DBへの接続を検証してみました。とりあえず、同一ホスト上の別DBですが、接続し…