タグ

ブックマーク / innx-hidenori.hatenadiary.org (14)

  • Symfony2でESIを動作させる手順 - しんふぉにゃん

    自分でも毎回分からなくなるのでメモ・・・。 Actionでは、レスポンスにsetSharedMaxAge()とsetPublic()をセット <?php $response = $this->render('HelloBundle:Hello:index.html.twig', array('rand'=>rand())); $response->setSharedMaxAge('10'); $response->setPublic(); return $response; テンプレートでは、standaloneをtrueに {% render "HelloBundle:Hello:news" with {}, {'standalone': true} %} config.ymlでESIを有効に app.config: esi: enabled: true routing.ymlでESI用

    Symfony2でESIを動作させる手順 - しんふぉにゃん
  • filter_var()でURLのフォーマットチェック(とバグ) - しんふぉにゃん

    PHPにはfilter_var()という関数があって、この関数を使うとURLのフォーマットチェックができます。(PHP 5.2.0以降) PHP: filter_var - Manual ですが、この関数のURLフォーマットチェックにはバグがあって、ドメイン部分にハイフンがあると「URLではない」と判定されてしまうようです。 PHP :: Bug #51192 :: FILTER_VALIDATE_URL will invalidate a hostname that includes '-' PHP :: Bug #51258 :: FILTER_VALIDATE_URL thinks dashes/hyphens in host name are invalid PHP 5.3.2環境で確認(5.3.3でも修正されていない?) 正常: <?php $value = 'http://ex

    filter_var()でURLのフォーマットチェック(とバグ) - しんふぉにゃん
  • MacBook AirでMacデビューしたのでメモ - しんふぉにゃん

    symfonyの執筆合宿(@六木ヒルズのWIRED CAFE)へ行ったら、自分以外全員Macというひどいいじめを受けたので、東京から新幹線で名古屋駅へ帰ってきたらその足でビックカメラ名古屋駅西店へ駆け込み、そのままMacBook Air 13インチを買ってお持ち帰りした。後悔はしていない! Webの動作確認用程度にかなり初期のiMacを所有していたことはあったのですが、最近のものは全く触ったことがなかったので、いろいろ設定などに戸惑いながらやっています・・・。しかしMacはいいですね・・・・。なぜもっと早く買わなかったのかと、自分を問い詰めたくなります。 というわけで、いろいろやったこと調べたことなどの自分用メモ (徐々に追加)。 Mac力をもっと鍛えたいです! キーボードショートカットの記号 いろいろキーボードで操作したい場合は、まずこれらの記号に慣れる必要あり。 わかばマークのMa

    MacBook AirでMacデビューしたのでメモ - しんふぉにゃん
  • symfonyユーザ会 - しんふぉにゃん

    symfony仲間と「日symfonyユーザ会」なるものの設立を準備しています。 大雑把には、既存のsymfonyユーザーや、これからsymfonyを始める方々を支援するための活動をする組織、ということになりますが、特に既存のsymfonyユーザーが普段から感じている「困っていること」を解決するための活動をしていきたいよね、と話をしています。 この「困っていること」というのは人それぞれでしょうけど、私を含めて複数の方が考えている、割と大きな「困ったこと」の1つが「日語による情報の整理」です。 私自身は、この「情報の整理」という目的から、symfonyユーザ会の必要性を強く感じ、設立の準備にあたっています。 以下、私が「symfonyユーザ会があったらこんな風にしたい」ということを書いてみます。 1. 日語による情報 symfonyは海外の企業が開発しているソフトウェアで、公式サイトの

    symfonyユーザ会 - しんふぉにゃん
  • KernelとHttpKernel、その辺の起動順序 - しんふぉにゃん

    Symfony2で名前的に混乱しやすそうなのがKernelとHttpKernelで、 Kernelはアプリケーション全体のベースとなる HttpKernelは1つのHTTPリクエストのベースとなる という感じで、Kernelの方がベースよりです。これは説明するまでもないかもしれませんが、フロントコントローラーで一番最初に作られるAppKernelがKernelの方を継承しています。 で、ポイントはHttpKernelの初期化のあたりですが、これはDIコンテナ経由で行われます。 (※DIコンテナ自身はKernelが作ります) Kernel::handle()内部で、 <?php return $this->container->getHttpKernelService()->handle($request, $type, $raw); とコンテナ経由でHttpKernelサービスにアクセスし

    KernelとHttpKernel、その辺の起動順序 - しんふぉにゃん
    uechoco
    uechoco 2010/11/17
    Kernel、HttpKernel
  • Symfony2のconfigファイルにおけるimportsの挙動(DIのconfig) - しんふぉにゃん

    Symfony2のconfigファイルでは、別のconfigファイルをインポートすることができます。 たとえばconfig_dev.ymlでは、共通設定であるconfig.ymlを以下のようにインポートしています。 imports: - { resource: config.yml } また、config_dev.ymlをよく見ると、ルーティングの設定についても似たような記述があることが分かります。 app.config: router: { resource: "%kernel.root_dir%/config/routing_dev.yml" } 前者のimportsで記述したresourceは、このconfigファイルの処理時点で同時にインポートされ、マージされて1つのconfigとして扱われます。 このimportsキーは、YAMLのルート階層にのみ記述できます。 そして、YAML

    Symfony2のconfigファイルにおけるimportsの挙動(DIのconfig) - しんふぉにゃん
    uechoco
    uechoco 2010/11/17
    設定ファイル
  • Doctrine2を使った開発のワークフローで悩み中 - しんふぉにゃん

    symfony 1では、ORM Designerを使ってスキーマ設計→schema.yml書き出し→モデルやDBを生成(必要に応じてマイグレーション)というワークフローでした。 こういったワークフローをDoctrine2を使った開発でもやりたいと思い、Doctrine2のコマンド等とあれこれ格闘していますが、今のところまだ「これだ」と思える方法が見つかっていません。 現状、ぶつかった問題点 ORM DesignerはDoctrine2をサポートしているが完全ではなく、リレーションの情報など、一部書き出されたYAMLが不完全 YAMLでマッピング設定を書き、doctrine:generate:entitiesでエンティティを生成すると、getter/setterなども一挙に生成できて楽、しかし問題も YAMLにフィールドを追加した場合の追加分の書き出しがうまくいかなかった(2重になったりした

    Doctrine2を使った開発のワークフローで悩み中 - しんふぉにゃん
    uechoco
    uechoco 2010/11/17
    ORM Designer
  • Symfony2のテンプレートレンダリング時の名前の指定 - しんふぉにゃん

    Symfony2でテンプレートをレンダリングする場合、以下のようにやや長い名前でテンプレートを指定します。 $this->render('HelloBundle:Hello:index.twig');この指定はコロンで区切られた3つのパーツで構成されていて、 テンプレートのあるバンドルの名前 テンプレートのあるコントローラーの名前 テンプレートファイル名(とフォーマット、レンダラー) のようになっています。 現段階ではこの様に3つのパーツで書かないとエラーになりますが、それはFrameworkBundle\Templating\EngineクラスのsplitTemplateName()メソッドで行われています。 <?php public function splitTemplateName($name, array $defaults = array()) { $parts = explo

    Symfony2のテンプレートレンダリング時の名前の指定 - しんふぉにゃん
    uechoco
    uechoco 2010/11/17
    テンプレート、Twig
  • コアのDIエクステンションでの設定を、自前のDIエクステンションで変更する - しんふぉにゃん

    まず、DIエクステンションについては以下の記事を参照 Symfony2のDIエクステンション - しんふぉにゃん このDIエクステンションですが、Symfony2コアの各バンドルごとのDIエクステンション自体を拡張するうまいやり方は今のところ分かっていないのですが、コアのDIエクステンションで行っているDIコンテナへの設定を、別のバンドルのDIエクステンションで変更する方法は分かりました。 単純なことなのですが、自分で作ったバンドルのDIエクステンションで、別のバンドルで行われている設定を変更するというだけです。 例:ビューテンプレートファイルの格納場所を変更する ビューテンプレートのファイルは、デフォルトでは以下のようなディレクトリ・ファイルになっています。 \src\Application\HelloBundle\Resources\views\Hello\index.php語で

    コアのDIエクステンションでの設定を、自前のDIエクステンションで変更する - しんふぉにゃん
    uechoco
    uechoco 2010/11/17
    DIエクステンション、設定、
  • Symfony2のDIエクステンション - しんふぉにゃん

    (まだきちんと全容をつかめていないのですが)Symfony2のDI+バンドルのシステムには「エクステンション」という機構があって、DIコンテナから得られる設定を使ってバンドルの初期化などを行えます。 これは、各バンドル内の「DependencyInjection」というディレクトリ内に、「〜Extension.php」というファイル名で、Symfony\Bundle\FrameworkBundle\DependencyInjection\Extensionを継承したクラスを作って実装します。 FrameworkExtensionのエイリアスは「app」 エクステンションにはエイリアスをつけることができるようで、エクステンションの「getAlias()」でエイリアス名を返せば、それがエイリアス名になります。 ちなみにFrameworkExtensionはエイリアスが「app」になっていました

    Symfony2のDIエクステンション - しんふぉにゃん
    uechoco
    uechoco 2010/11/17
    設定ファイル、app.config
  • Symfony2で、キャッシュディレクトリへ書き出している処理 - しんふぉにゃん

    DIコンテナを使っているのに、キャッシュディレクトリへの書き出しはそれぞれのコンポーネントが別々に直接ファイルを書き出しているのは何とかしたいなと思いつつ・・・。(Symfony Componentsのコンポーネントで、DIコンテナがなくても動作するように設計されているから、仕方ないといえば仕方ないのですが) Kernel.php(Symfony\Component\HttpKernel\Kernel.php) writeCacheFile Router.php(Symfony\Component\Routing\Router.php) writeCacheFile Environment.php(twig\lib\Twig\Enavironment.php) writeCacheFile Store.php(Symfony\Component\HttpKernel\Cache\Store

    Symfony2で、キャッシュディレクトリへ書き出している処理 - しんふぉにゃん
    uechoco
    uechoco 2010/11/17
    キャッシュ、書き込み処理、箇所
  • バンドルを作るコマンド - しんふぉにゃん

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

    バンドルを作るコマンド - しんふぉにゃん
    uechoco
    uechoco 2010/11/17
    バンドル
  • OpenPNE3メモ - しんふぉにゃん

    ちょっと腰を据えてOpenPNE 3に取り組む予定なので、自分用メモエントリ。 設定関連 インストールしないプラグイン - config/plugins.yml デフォルトでは、openpne:installでいろいろなプラグインがインストールされてしまい、関連モデルなども作成される。不要なプラグインをインストール/アップデートなどの対象から外すにはconfig/plugins.ymlに記述する。 Google グループ opWebAPIPlugin: install: false DB設定を変更せずにインストールのやり直し redoオプション php symfony openpne:install --redo database.ymlを先に自前で用意して上記redoオプションでインストールしようとしてもできない Bug(バグ) #1606: opPluginInstallTask::e

    OpenPNE3メモ - しんふぉにゃん
    uechoco
    uechoco 2010/09/23
    name_value_hash
  • symfonyで自前のYAML設定ファイルを勝手に読み込ませるアイデア - しんふぉにゃん

    昨日、Twitterで@massatさんが以下のようなことをつぶやかれていました。 ・🍻 on Twitter: "sfConfigHandler まわりの挙動を変えるプラグインを書きたいのだが。余地がないぞ・・・。 #symfony" ・🍻 on Twitter: "@vectorxenon config_handlers.yml に自前のymlを記述するとsfConfigCache::importでキャッシュまで作っちゃうプラグインを作ろうと思ったのですが。importの引数で渡すパターン名をConfigHandler内で取れなくて悩み中す" ・🍻 on Twitter: "app.ymlが肥大するのが嫌だから最近は自前のymlを作ってconfig_handlers.ymlに書いてsfDefineEnvironmentConfigHandlerで読んでsfConfigCache:

    symfonyで自前のYAML設定ファイルを勝手に読み込ませるアイデア - しんふぉにゃん
    uechoco
    uechoco 2010/05/18
    独自のYAMLファイルを読み込む方法
  • 1