2009-01-01から1年間の記事一覧

symfonyのタスクでデータベースを自動で選ぶようにする

symfony 1.3からDoctrineがデフォルトのORMになり、これに伴ってタスクのデフォルトのコードに「doctrine」という文字が埋め込まれるように変更されました。つまり、自前で作成したタスクをデータベースオプションを指定せずに実行した場合、「doctrine」と…

use_javascriptのオプション

symfonyのビューでJavaScriptファイルを動的に追加指定する場合、「use_javascript」ヘルパー関数を使います。 このヘルパー関数の3番目の引数でいくつかオプションを指定できます。 どういったオプションがあるのかは、実際にオプションが使われる「include…

SPLのsplFileObjectを拡張してエンコード変換できるようにしてみた

なにやらPHPでモダンがアツイ(何をいまさら)ようなので・・・。 モダンPHP勉強会を開催しました & 資料 - 肉とビールとパンケーキ by @sotarok PHPでテキストファイルを読み込む場合、内部はUTF-8だけどファイルはShift-JISって場合がたまにあり、読み込ん…

symfony 1.3/1.4でDoctrineモジュールを生成したときの変数名が変更された件

昨日、Twitterにて@odasukeさんがつぶやかれていたのを見て、その後気になったままだったので状況を調べてみました。結論としては、ごく最近symfony 1.3/1.4のDoctrineプラグインのコードが変更された影響だった、ということです。 該当する変更箇所:http:/…

カスタムコンフィグハンドラーを作った時のprod環境でのオートロード

カスタムコンフィグハンドラーを作り、そのファイルを特殊なディレクトリに配置しても、autoload.ymlで設定していればdev環境の場合は問題ありませんでしたが、なぜかprod環境にするとオートロードされずにエラーになってしまいます。この挙動はかなり昔のバ…

ArkのAdvent CalendarがJobeetな件

http://opensource.kayac.com/ja/projects/ark/advent/2009/ 1日目の記事を読んでみると、symfony使いとしては反応せざるをえません 24日間で作成するアプリケーションの名前は Jobeet です。これは PHP のフレームワークである symfony のチュートリアルと…

symfony 1.4でプラグインがインストールできない

早速自分で管理しているウェブサイトをsymfony 1.4で作り直そう(アップグレードではなくて)と作業を始めたのですが、いきなりプラグインのインストールでつまづいています。例えばフィード関係の出力やパースができるsfFeed2Pluginをインストールしようと…

2009年のsymfonyアドベントカレンダー「More with symfony」はすごい!

さて今年も12月になってしまいましたが、12月といえば最近では日本のプログラマー界隈(主にPerl)でもアドベントカレンダープロジェクトが広まってきましたね。symfonyは今年も本家でアドベントカレンダーが始まりました! http://www.symfony-project.org/…

ORMフォームで複合ウィジェットを使う

ここで説明するやり方はちょっと強引なやり方かと思います。 symfony的にはカスタムウィジェットを作成して使うのが綺麗なやり方だと思います。 以前のエントリで、複合ウィジェットをフォームで扱う方法を紹介しました。 複合ウィジェットの値の取得方法 - …

symfonyでHTTPリクエストパラメーターがsfWebRequestオブジェクトに渡されるところのメモ

factories['routing'] = new $class($this->dispatcher, $cache, array_merge(array('auto_shutdown' => false, 'context' => $this->factories['request']->getRe…

ついったーのアイコンにsymfonyアイコンをつける

Twitterで#symfonyのタイムラインを追っているのですが、アイコンの右上に「sf」マークが付いている人を結構見かけるんですよね。 「この人達はsensioの人なのか?」などと想像していたのですが、違いました。 Twibbonという、何かのファンであることをアイ…

symfony1.3のDoctrineモデルでgetter/setterのPHPDocコメントが生成されるようになった

以前、Doctrine(symfony 1.3 alpha + Doctrine)について調べた時、生成されたモデルクラスに各フィールド値に対応するアクセサメソッドが存在しない、ということを書きました。 Doctrineメモ - しんふぉにゃん 私は普段Eclipse + PDTでコード補完に頼りなが…

symfonyのタスクからログファイルにログを記録する

TwitterにてTakiTakeさんがつぶやいていたので、気になって調べてみました。 いろいろググッたところ、次のエントリが見つかりました。 http://arpeggios.wordpress.com/2008/08/15/logging-on-tasks/ エントリの内容を簡単にまとめると以下のような感じです…

symfony 1.2/1.3でタスクからヘルパーを利用する

symfony1.1までは、sfLoader#loadHelpersメソッドを使用してアクションやタスク内からヘルパーをアクティベートし、呼び出すことができました。 dfltweb1.onamae.com – このドメインはお名前.comで取得されています。 しかし、sfLoader#loadHelpersメソッド…

symfony 1.3付属のDoctrineで日付の扱いが少し楽に

同じく1.3のwats-newからもう1つ。 symfony 1.x legacy website http://www.symfony-project.org/tutorial/1_3/ja/whats-new Doctrineの節に「Date Setters and Getters」というのがありました。日付をDateTimeオブジェクト設定・取得できるヘルパーメソッド…

symfony 1.3のウィジェット系メソッドでメソッドチェーン(fluid interface)

symfony 1.3の日本語ドキュメント翻訳も始まって、ボチボチ公式サイトでも表示され始めるんじゃないかと思います。(翻訳作業をされている方、お疲れ様です。) 1.3の新機能についてまとめてある「whats-new」を読んでいて、1つ気になる機能があったのでピッ…

DoctrineとPropelのパフォーマンス比較

# 2009/09/23 22:45 Fivestarさんからコメントで教えていただいたDoctrineのINSERTについてテスト1に追記しました。 # 2009/09/24 01:03 Fivestarさんからコメントで教えていただいたDoctrineのQueryCacheについてテスト3に追記しました。 symfonyとしては「…

symfony1.3でタスクを生成すると、デフォルトで使用するORMがpropelになっている

symfony1.3ではデフォルトのORMがdoctrineなわけですが、タスクを生成してみると・・・。 addOptions(array( new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name'), new sfCommandOption('env', null, s…

sfWebRequest::getHttpHeader()

リクエストのヘッダ情報を取得するメソッドがsfWebRequest::getHttpHeader()です。 公式サイトのAPIなどであまり説明されていないので、調べたことをメモ。 引数$name, $prefix 第1引数の$nameは、ヘッダ情報の名前です。 第2引数の$prefixは、ヘッダ情報の…

Doctrineメモ

ぼちぼちDoctrineを使い始めようということで趣味プロジェクトをsymfony1.3+Doctrineで作り始めました。 Doctrineについての知識が全くないので、Propelとの違いなど(初歩的なことから)個人的にメモしていきます。 symfony 1.x legacy website 注)symfony…

fabienさんとのsymfonyツアー&symfony MeetUpに参加しました

9/5(土)のPHPカンファレンスに参加する目的で東京へ遠征し、とても楽しかったのですが、次の日にfabienさんとのツアーがあり、夜にはsymfony meet upということでsymfonyユーザーで集まろうという企画があることをakkyさんのフィードで知りました。 symfon…

sfFormtasticPluginで使用できるウィジェットタイプ

dfltweb1.onamae.com – このドメインはお名前.comで取得されています。 で紹介されているsfFormtasticPluginを使用してYAMLを記述する際に、ウィジェットの種類として使用できるタイプの一覧ですが、sfFormtasticPluginのソース内に記述されています。 http:…

sfFormのレンダリングにカスタムフォーマッタを使用する

symfonyのフォームライブラリsfFormを使ってフォームを表示する場合、フォームの各要素はデフォルトではテーブルの行として以下のようなHTMLタグで出力されます。 <tr> <th><label for="login_login_name">Login name</label></th> <td><input type="text" name="login[login_name]" id="login_login_name" /></td> </tr> フォーマッタは、デフォルトの「table」以外に「list」も用意されています。 …

MySQLでランダムにN件取得する方法のパフォーマンス比較

こちらと同じような比較を自分でもやってみました。 私はMySQLに関してあまり深い知識を持っていないため、検証の方法や設定値の問題などがあるかもしれませんが、ざっくりとした傾向は分かるかと思います。 まず、今回使用しているテスト用環境のバージョン…

symfonyでETag設定を有効にした場合に304応答が返されるように修正

先日調査したsymfonyのキャッシュの挙動まとめ - しんふぉにゃんのエントリに書いた修正点ですが、symfomnyのコードを直接書き換えるのではなく、以下のようにして適用しました。1. sfCacheFilterの派生クラスを作成して、lib配下に保存(ここれはxnniCacheF…

ページキャッシュの不正によるページが真っ白問題ほぼ完結

ページが真っ白になる問題(途中) - しんふぉにゃん ページが真っ白になる問題(中断) - しんふぉにゃん 何度が格闘してあきらめかけていたsymfonyのキャッシュの「ページが真っ白問題」ですが、昨日友人のFakeさんから「HEADリクエストがきたときのキャッ…

symfonyのAdminGeneratorで生成するフォームのカスタマイズでハマった点

symfonyにはschema.ymlで定義したテーブルに対するCRUD関連の画面を一気に生成するAdminGeneratorという機能があり、単純なメンテナンス画面であれば、ほぼこれだけで作れてしまいます。 symfony 1.x legacy website AdminGeneratorで生成した画面も、がんば…

ページが真っ白になる問題(中断)

ページが真っ白になる問題(途中) - しんふぉにゃん この問題ですが、その後再発した折にページに対応するキャッシュファイルを手元で復元してprint_rで確認してみました。すると、sfWebResponseのheaderOnlyが「1」になっていました。headerOnlyが1になっ…

symfonyのprod環境でログを有効化する

settings.ymlでlogging_enabled=onにしただけでは、prod環境ではログは記録されません。Jobeet 23日目:デプロイ の「ロギング」 http://www.symfony-project.org/jobeet/1_2/Doctrine/ja/23 デフォルトでは、prod環境ではロギングは行われません。 ロガーク…

ページが真っ白になる問題(途中)

かなり以前からたまに発生していて、未だに原因を特定できていないのですが、希にページキャッシュから表示したページが真っ白(0バイトのbodyが返ってくる)になる現象があります。本日もこの現象が発生して、その環境でデバッグ情報を埋め込んだところ、sf…