タグ

ブックマーク / fivestar-2.hatenadiary.org (16)

  • Symfony2のFirewallの設定に関するメモ - ゆっくり*ゆっくり

    Symfony2のSecurityコンポーネントではFirewallという仕組みを用いて認証/認可を行います。Symfony2ではおおまかにいうと次のようなフローで処理が進みます。 Requestオブジェクトの初期化 DIコンテナの起動 ルーティングとセッションの初期化 ルーティング情報を元にコントローラーの作成 コントローラー(アクション)の実行 Responseオブジェクトの送信 Firewallは上記の3と4の間に入ります。コントローラーの作成に入る前に、Requestオブジェクトの状態を見てアクセスを制御するのがFirewallの役目になります。 security.yml Firewallはapp/config/security.ymlに次のようにして記述します。 security: providers: users: entity: class: CommmerceBundle:

    Symfony2のFirewallの設定に関するメモ - ゆっくり*ゆっくり
    brtRiver
    brtRiver 2011/05/09
    複雑そうだなぁ...。一度実際に触ってみないとわかんない
  • 名前空間とクラス名 - ゆっくり*ゆっくり

    11月12日にパーフェクトPHPが発売しました。購入いただいた方、コメントいただいた方、ありがとうございます! - さて題です。PHP 5.3から名前空間が使えるようになりました。僕はここ最近Symfony2で社内向けのアプリを開発したり、Symfony2のバンドルをいくつか作ったりしてすっかり名前空間に慣れてきました。 名前空間を使い始めて感じたのが、クラス名をつける際の感覚がこれまでとは少し違うように思います。これまで、というのは主にPEAR形式のクラス名を指しています。Doctrineを例にとって解説します。 名前空間とクラス名 Doctrine 1では、次のようなクラスが定義されています。 Doctrine_Expression_Mysql Doctrine_DataDict_Mysql Doctrine_Connection_Mysql これらを単純に名前空間を使った形式に置き

    名前空間とクラス名 - ゆっくり*ゆっくり
    brtRiver
    brtRiver 2010/11/15
    名前空間でのクラス名の付けかた
  • sfFormとエスケープに関する注意点 - ゆっくり*ゆっくり

    symfonyで自動エスケープ設定を有効にしている場合、アクションからテンプレートに変数をセットする際にオブジェクトならばsfOutputEscaperクラスでラッピングされ、スカラーであれば直接エスケープされてテンプレートに渡されます。 スカラー値をテンプレートに渡す際にエスケープしない方法 - ゆっくり*ゆっくり 上の記事を読んでいる前提で。 symfonyでフォームを扱う場合はsfFormクラスを利用しますが、自動エスケープが有効になっていても、sfFormはエスケープ対象になりません。なぜならば、sfFormHTMLの出力を行うクラスなので、これをエスケープ対象にしてしまうと機能が成り立たないからです。 これは上の記事で説明したsfOutputEscaper::markClassesAsSafe()メソッドを利用しています。sfView::initialize()の内部で、次のコ

    sfFormとエスケープに関する注意点 - ゆっくり*ゆっくり
    brtRiver
    brtRiver 2010/06/08
    やっちまってそうだ。確認しとこう。
  • config_handlers.ymlを書き換えるときの注意点 - ゆっくり*ゆっくり

    デバッグモードが無効な状態で、config_handlers.ymlに自前のコンフィグハンドラーを指定している場合、たぶんクラスが存在しないエラーがでちゃいますよ!ということです。 <?php abstract class sfApplicationConfiguration extends ProjectConfiguration { // ... public function initConfiguration() { $configCache = $this->getConfigCache(); // ... // required core classes for the framework if (!$this->isDebug() && !sfConfig::get('sf_test') && !self::$coreLoaded) { $configCache->impor

    config_handlers.ymlを書き換えるときの注意点 - ゆっくり*ゆっくり
    brtRiver
    brtRiver 2010/05/20
    symfonyでrequireしないと駄目なパターン. see also: http://d.hatena.ne.jp/vector_xenon/20090608/1244484490
  • Doctrineで識別子を引用符で囲むようにする方法 - ゆっくり*ゆっくり

    たとえばfromというカラムがテーブル上にあったとして、 SELECT * FROM my_table WHERE from LIKE '%@gmail.com'; こんなクエリを実行しようとすると、エラーになってしまいます。fromが予約語だからですね。識別子に予約語が入る場合は、RDBMSの指定する引用符で囲んであげる必要があります。MySQLなら`(バッククオート)、PostgreSQLなら"(ダブルクオート)が識別子にあたります。 SELECT * FROM `my_table` WHERE `from` LIKE '%@gmail.com'; DoctrineでSQLを実行する際、デフォルトでは識別子で囲まれるようにはなっていません。そこで、Doctrine_Managerクラスに次のように設定してあげる必要があります。 <?php $manager = Doctrine_Man

    Doctrineで識別子を引用符で囲むようにする方法 - ゆっくり*ゆっくり
    brtRiver
    brtRiver 2010/04/22
    まさしく同じことでハマった経験あり。カラム名変えちゃいましたけど。。
  • sfTwigPluginで遊んでみた - ゆっくり*ゆっくり

    id:cocoitiおにいちゃんががんばってくれているsfTwigPluginで遊んでみました。Twigは最近注目のテンプレートエンジンですね。 symfonyのpluginsディレクトリにsfTwigPluginいれるまでは終わってるとして、まずはPluginを有効に。config/ProjectConfiguration.class.phpを修正 <?php // sfCoreAutoload... class ProjectConfiguration extends sfProjectConfiguration { public function setup() { // ... $this->enablePlugins('sfTwigPlugin'); } 次は各アクションがテンプレート出力時にsfPHPViewクラスではなくsfTwigViewを利用するように指定。通常、View

    sfTwigPluginで遊んでみた - ゆっくり*ゆっくり
  • symfonyのValidatorで全角/半角変換などを行う - ゆっくり*ゆっくり

    よくフォームで、全角で入力してくださいだとか、ひらがなで入力してくださいとか色々ありますが、UI的にはプログラム側である程度変換してあげるほうが望ましいですよね。 方法1: Eventを使う symfony 1.3以降では form.filter_values というイベントが定義されています。これが呼ばれるのがFormのdoBindメソッドの先頭です。$form->bind($values) として実行してから、内部でバリデーションをする直前にイベントが発生します。 <?php class RegisterForm extends sfFormSymfony { public function setup() { $this->setValidators(array( 'name' => new sfValidatorString(), 'name_kana' => new sfVali

    symfonyのValidatorで全角/半角変換などを行う - ゆっくり*ゆっくり
    brtRiver
    brtRiver 2010/02/01
    ありがちな日本語環境のバリデータやフィルタを集めたjpFormExtraPluginが欲しい。皆がpushできれば尚良いよね。
  • 僕がsymfonyを使い続ける10の理由 - ゆっくり*ゆっくり

    Zendでも、Symfonyでもなく、CakePHPを選んだ10の理由 - 個人事業主のつぶやき に触発されて。 先に言っておくと、好きなものを使えばいいと思うけど、FUDっぽいことは建設的ではないし、しないほうがいいと思うんですよ。 理由1: PHP 5のみに対応 僕はPHP 4は仕事でも個人でも使わないので、PHP 5を前提に作ってくれた方がうれしいです。特に例外とか。 理由2: モデルがオブジェクト 配列むりです。 理由3: 運用/開発などの環境の切り替えができる フロントコントローラの切り替えだけで、エラーの出力方法だったり、特定の値であったり、様々なことの切り替えが可能になります。 理由4: Webデバッグツールバー 必須。ログの出力やセッションの中身の確認、リクエストが来てからDBに発行したクエリの一覧、処理時間の確認とか超便利。 symfony 1.x legacy webs

    僕がsymfonyを使い続ける10の理由 - ゆっくり*ゆっくり
    brtRiver
    brtRiver 2010/01/28
  • postValidatorから個別のフィールドにエラーを設定 - ゆっくり*ゆっくり

    http://d.hatena.ne.jp/Fivestar/20100118/1263788888 先ほど書いた記事ではpostValidatorにsfValidatorCallbackを指定して、複数フィールドに対するバリデーションを行うというものでした。 バリデーションに失敗するとフォームの内部に保持しているsfValidatorErrorSchemaオブジェクトに失敗した分だけエラーオブジェクトが格納されます。このエラーオブジェクトはValidatorErrorSchemaオブジェクトの内部で2種類に分けて保持されます。 1つは NamedError です。これは要するに単一のフィールドに対するエラーです。 もう1つは GlobalError です。これは単一のフィールドではなく、複数フィールドにまたがるエラーであったり、フォーム全体としてみなすエラーです。 postValidat

    postValidatorから個別のフィールドにエラーを設定 - ゆっくり*ゆっくり
    brtRiver
    brtRiver 2010/01/18
    個別のフィールドへのエラー通知方法
  • Symfony 2がGitHubに移行した件とConsole Componentについて - ゆっくり*ゆっくり

    今年のはじめくらいに、Symfony 2のブランチGitHubに移行されました。 we host an official Git repository on Github symfony 1.x legacy website 以前、Symfony2について少しふれていますが、あれからまたひとつ、Componentが追加されています。 Console Component Console ComponentはGitHubに移行したのと同時期くらいに追加されました。元々CLIという名前だったのですが、最近Consoleにリネームされました。 Consoleという名前が示すとおり、コマンドラインで何か処理を行うときに利用するComponentです。これまでSymfonyにはsymfonyコマンドが存在しており、symfonyコマンドを通じて、スケルトンの生成やデータベース操作、プラグインのインス

    Symfony 2がGitHubに移行した件とConsole Componentについて - ゆっくり*ゆっくり
    brtRiver
    brtRiver 2010/01/15
    名前空間にも慣れないとなぁ
  • DoctrineのDQLコールバック関連 - ゆっくり*ゆっくり

    via. DoctrineのSoftDeleteが言うこと聞いてくれない。deleted_atが入ってるのに普通に表示される。 Masashi Sekine on Twitter: "DoctrineのSoftDeleteが言うこと聞いてくれない。deleted_atが入ってるのに普通に表示される。" 原因調べたらDoctrineの設定ですね。 config/ProjectConfiguration.class.phpの中に <?php class ProjectConfiguration extends sfProjectConfiguration { # このメソッドを追加 public function configureDoctrine(Doctrine_Manager $manager) { $manager->setAttribute(Doctrine_Core::ATTR_U

    DoctrineのDQLコールバック関連 - ゆっくり*ゆっくり
    brtRiver
    brtRiver 2010/01/07
    論理削除するときの注意点
  • そしてもう1つ... - ゆっくり*ゆっくり

    日はすばらしい日ですね。symfony 1.3/1.4とDoctrine 1.2がリリースされただけでも、symfony界隈の方々にとっては一大ニュースです。ですがもう1つ、「とっておき」があるんです。 symfony 1.x legacy website I'm pleased to reveal the symfony advent calendar for 2009. symfony 1.x legacy website 2009年度のAdvent Calendar、"もっと知りたいsymfony"(原文:"More with symfony")が公開されました!これまでAskeetやJobeet(Practical symfony)がおこなわれましたが、これらのような、全体で1つのストーリーをもった形式とは異なり、今回のMore with symfonyについてはそれぞれの章が独

    そしてもう1つ... - ゆっくり*ゆっくり
  • ついにDoctrine 1.2がリリース! - ゆっくり*ゆっくり

    Today I am very happy to announce that Doctrine 1.2.0 stable has been released. http://www.doctrine-project.org/blog/doctrine-1-2-0-stable-released Doctrine 1系の最終形といってもいいでしょう、Doctrine 1.2が日正式リリースされました。 Doctrine 1.2で新しく追加された機能や変更された機能には以下のようなものがあります。 Doctrine_Core 今までのDoctrineクラスはDoctrine_Coreに置き換えられています。DoctrineクラスはDoctrine_Coreを継承していますが、定数などはDoctrine_Core::ATTR_XXXXのように指定する必要があります。 また、パフォーマンスを考慮

    ついにDoctrine 1.2がリリース! - ゆっくり*ゆっくり
  • Symfony ComponentsとOutput Escaper - ゆっくり*ゆっくり

    11月15-18日に行われている International PHP Conferenceで発表されているらしい資料があり、おもしろいことが色々書いてあったのでご紹介したいと思います。 Symfony Components 2.0 on PHP 5.3View more documents from Fabien Potencier. Symfony Components Symfony Componentsはsymfonyのコアから独立したライブラリ群です。つい先日のKlabさんとの勉強会の時は知らなかった(知る余地もなかった)内容が色々あったのでそのあたりのことを書きます。 現在公開されているSymfony Components(http://components.symfony-project.org/)には5つのコンポーネントがあり、そのうちRequest Handler以外はソー

    Symfony ComponentsとOutput Escaper - ゆっくり*ゆっくり
    brtRiver
    brtRiver 2009/11/18
    名前空間使うのでsfという接頭辞がなくなるって話してたよーな記憶が。すいませんうる覚え。
  • Fabienと東京観光+Symfony Meetup Tokyo - ゆっくり*ゆっくり

    Symfony Meetup Tokyoやります – 秋元 symfonyのプロジェクトリードでSENSIO社CEOのFabien Potencierさんと東京観光にいってまいりました。日のSymfoniansに加え昨日のPHPカンファレンスにいらしていた江さん(Taiwan PHP User Group)やインドネシアからきている留学生のbeeantさんと東京をいろいろとめぐりました。英語がろくにできないので日文化を伝えることができなかったのがとても申し訳ないです。。。 んで夜はSymfony Meetup Tokyoと題して、打ち上げのようなものをしました。akkyさんがプロジェクター持ってきてくださったのでFabienさんのSymfony2の新機能を熱く語ってもらったり、2次会では質問が飛び交ったりなど、とにかくSymfonian垂涎の1日であったことは間違いないでしょう。ここ

    Fabienと東京観光+Symfony Meetup Tokyo - ゆっくり*ゆっくり
  • スカラー値をテンプレートに渡す際にエスケープしない方法 - ゆっくり*ゆっくり

    明日リリース日で、現在徹夜で作業中なので日語がおかしくても気にしないでください。 symfonyで自動エスケープ設定を有効にしている場合、アクションからテンプレートに変数をセットする際にオブジェクトならばsfOutputEscaperクラスでラッピングされ、スカラーであれば直接エスケープされてテンプレートに渡されます。オブジェクトの場合は$espacedObject->getRawValue()で生の値を取ってくることができるのですが、スカラーの場合は既にエスケープされた状態の値になってしまっているためテンプレートに渡ってきた時点では生の値を取得できません。 // sampleActions.class.php <?php class sampleActions... { public function executeSample(sfWebRequest $request) { $th

    スカラー値をテンプレートに渡す際にエスケープしない方法 - ゆっくり*ゆっくり
  • 1