投稿

ラベル(php)が付いた投稿を表示しています

[Symfony2]プロファイラーのタイムラインへの独自項目追加方法

イメージ
Symfony2 では xdebug を導入しなくても、簡易なプロファイラーを利用できます。 "タイムライン"で各処理が消費した時間を見ることができるのですが、コントローラーから呼び出された各処理については自動で時間を取得してはくれません。 Symfonyで提供しているプロファイラーのタイムライン ・・・というわけで独自項目をタイムラインへ追加する方法について調査しました。 タイムラインへの追加手順は次の通り。 タイムラインに追加したい処理を行うオブジェクトに "debug.stopwatch" を DI $stopWatch = $this->get('debug.stopwatch'); $event = $stopWatch->start('hogehoge'); ...(任意の処理)...; $event->stop() こんな感じになります 残念ながら ドキュメント にはこのあたり書いてないのですよね。。。 以下、調査メモ

[Symfony2]コンパイル使用&カスタマイズ方法について調べる - 使用方法

Symfony2では設定ファイルで定義したDIの内容を、キャッシュ時にコードとして埋め込む"コンパイル"を利用することができる。・・・のだけれど、実際使用方法とかカスタマイズ方法とかが今ひとつ理解しきれていないので、確認してみる。 多分その気になれば、かなり色々なことができるのではないかと期待しているのだけれど。。。 とりあえずは別途記載した SQL ファイルの内容をクラスに埋め込むというのを目標としてみる。 まずは公式ドキュメントを参考に概要と使用方法を確認してみる。 (翻訳) http://docs.symfony.gr.jp/symfony2/cookbook/service_container/tags.html (原文) http://symfony.com/doc/master/components/dependency_injection/tags.html 概要 設定ファイルのタグに記載した設定をPHPコードとしてキャッシュできる ChainOfResponsibility パターンなどで利用できる 使用時にはタグを設定する PHPコードにできるということはAPCの恩恵に預かれるということなので、できればぜひとも便利に使っていきたいところ。きっと ChainOfResponsibility パターン以外でも利用できる箇所は多い・・・よね? 使用方法 コンパイルを利用するサービスクラスを作成、DI設定を記載 1で設定したサービスにぶち込むクラスを作成、DI設定を記載、タグを付ける Bundle クラスに build メソッドを追加、XxxxCompilerPass の利用を宣言 XxxxCompilerPass クラスを作成、どのタグに対してどんな処理を行うのか記載 サービス生成ロジックのキャッシュコード生成時に、2のDI設定がPHPコードとして固定で記載される XxxxCompilerPass のあたりが肝のようなので、ここで他にどんな処理が可能なのか確認してみるつもり。 http://docs.symfony.gr.jp/symfony2/cookbook/service_container/tags.html#compilerpass それにしても、こ...

[FuelPHP]ORM利用時のvalidation使用方法

Orm¥Modelでのsave時のvalidationの設定がハマりどころだったのでメモ。 Model_Crudを利用する場合とは全く有効化する方法が違うという話。 validationを`$_properties`に指定 参考: http://fuelphp.jp/docs/1.5/packages/orm/creating_models.html#/propperties Orm¥Observer_Validationを`$_observers`に追加 参考: http://fuelphp.jp/docs/1.5/packages/orm/observers/included.html#/os_validation validation内容はValidationルールの項目を見てね http://fuelphp.jp/docs/1.5/classes/validation/validation.html#/rules あと、Observer_Validationはoil create model --ormした時かなにかで見かけたので、気づいたんだけど、、、それがなければわからなかった気がします。。。 Model_Crudの方ではvalidation内容を`$_rule`に記載するのですが、、、 Orm¥Modelを使う場合は全くのムダ知識・・・(白目) そもそもOrm¥ModelとModel_Crudってまるで継承関係ないし、使い方とかも似てるようで全然違っていて、、、ダックタイピングとか・・・そういう概念は、ないの?

[FuelPHP]1.5/masterのBelongs Toでの注意メモ

FuelPHP1.5系のOrm¥Modelでバグ(だよね?)を踏んでハマったのでメモ。 再現方法と事象 Belongs Toのrelationを設定するモデルでkey_fromにそのモデルのPK項目を指定 上のモデルに対してdelete()を実行 `FuelException`(Primary key on model モデル名 cannot be changed.)をくらう いぇーい 対応 1.6系では修正されていたので、ORMパッケージだけ1.6系を使うことにしました。 ちなみにOrm¥Model_Softを使う場合は上の事象は発生しません。

FuelPHPのgit管理にorphanブランチ使ったらどうかねぇ?

イメージ
FuelPHPをgit管理したいなぁって場合にorphanブランチを使ったら割とよいんじゃないかと以前思ったのでメモ。 `oil create ほげほげ`した後に次の手順を実施。 # orphanオプションで他のコミットとのつながりのないブランチを作成できる # ちなみにFuelPHPではmasterという名前のブランチは使用されていない git checkout --orphan master git add . git commit -m"Initial commit" git rm *.md git commit -m"Remove unnecessary documents for application" # 次は必要に応じて実施、この時点で一番新しいstableなバージョンがデフォルトでpullされているはず # "1.5/master"の部分は必要に応じて変更する git submodule foreach 'git fetch' git submodule foreach 'git checkout 1.5/master' # 不要なremote、元々のブランチを削除 git br -D 1.5/master git remode rm origin FuelPHPはgithub上で開発されていて、" FuelPHPドキュメント "の"クイックインストール"の手順とかでインストールするとFuelPHP自体をまるっとgit cloneしてしまう様になっています。 別にFuelPHPの開発履歴はいらない submodule管理されているfuel/coreとかは同じくsubmodule管理したい というのがそもそもやりたかったこと。 で、ぐぐってみるといっぺんgitの管理ファイルを削除してから手作業でgit submodule addするみたいな手順が引っかかって"もやっ"としたのでちょっと解決策を考えてみました。 もやっとした上に実際一回失敗したので解決策を考えてみました。 ・・・というのが背景。 ちなみに"FuelP...