PHP

agavi.orgが一時的に使えないです

代わりにhttp://agaviproject.org/をご利用ください。 復活したようです。

$str[0]===$tokenだと$strがヌル文字列のときnotice出るんですけど

PHP

タイトルのようなことをdavidに言われてしまった。notice消すためにstrlen入れたら遅くなし読みにくいよねと。そのままではやりきれないので、こんなことをしてみた。 [senna@vine senna]$ time php -r '$str="abaed"; $token="a"; for($i=0; $i < 1000000; …

PHP Framework Fight! 続報

PHP

PHP Framework Fight!の続報が発表された模様。 詳細はPHP Framework Fight! 続報1を参照してください。アドバイスが受けられるのは助かります。きっと英語が上達することでしょう。発表された仕様を見て一つ気がかりなことがあります。仕様ではtwitterライ…

agavi-0.11.1RC3がリリース

リリースアナウンス邦訳を掲載します。 思っていたよりも時間が掛かってしまいましたが、ついにできました。 Agavi 0.11.1 RC3 は多くの小さな問題の修正と最新のタイムゾーンデータベースを伴っています。 注目すべきは、キャッシングに関する2つの問題が…

Singletonモデルの作り方

次のようなモデルがあったとする。

FormPopulationFilterの概要

今日はFormPopulationFileterのコードを読んでました。結構長くて時にトリッキーで楽しかった分疲れました。 あとで文章に起そうと思って概要をマインドマップにまとめながら読んでたんですが、あまりに疲れたので今日はマインドマップのままで勘弁してやっ…

strpos($str, $token) === 0と$str[0]===$token

FormPopulationFilterを眺めてたらstrpos($action, '/')===0とかいう記述があったのでこれも含めて再度ベンチマークをとってみた。前回より微妙に早くなってるのは$tokenも先に定義してるので""のパース時間が短縮されたおかげだと思います。 [senna@vine se…

バリデータの使い方

agaviのバリデータの動作などについてざざっと説明しときます。 ソースを読んで書いていて動作確認はしてませんので、各機能を実際に利用する場合は鵜呑みにはせず適宜動作確認してください。動作確認が取れたら連絡していただけると幸いです。 バリデーショ…

substr($str, $n, 1)と$str[$n]のベンチマーク

AgaviDependencyManager::checkDependenciesをみてたらsubstr($token, 0, 1)とかしてたので、念のためベンチマークとってみた。 環境はPHP5.2.2 [senna@vine senna]$ time php -r '$str="aaaaa"; for($i=0; $i < 1000000; $i++){ substr($str, 0, 1) == "a";…

PHP Framework Fight! 参加します

巷でうわさのPHP Framework Fight!に参加表明してきました。もちろんAgaviで。 一応、ORMやテンプレートエンジンに何を使うかなどは、そのフレームワークで「一般的」とされている方法ならヨシとします(例えば、symfonyならDoctrineじゃなくてPropelだよね…

AgaviOroperatorValidatorの使用例

<validator class="or" name="oroperator_sample"> <validators> <validator class="string"> <argument>password</argument> <parameter name="min">4</parameter> <error>セキュリティレベルを2以上に設定する場合は公開用パスワードを入力してください。</error> <error for="min">4文字以上のパスワードを設定してください</error> </validator> <validator class="number"> </validator></validators></validator>

pecl haru*1をCentOSにインストールするには

PHP

haruPDFを利用するにはまずlibharuをインストールする必要がある。トリアエズrpmにしてみた-rpm置き場 rpmをインストールしたら次はpecl haruのインストール。 pear install pecl/haru-0.0.1するとprefixをどうするか聞かれるので all /usrと答える。enterを…

PHPでPDFを出力するには

PHP

PHPでPDFを出力することを考えた場合、よく使われている方法はPDFlib,FPDF,TCPDFの3つになる。けれどPDFlibについては有料であり、FPDF,TCPDFはフォントの準備が煩雑であったりとそれぞれ問題を抱えている。 そこで、いっそのことフリーのCライブラリのラッ…

agavi-0.11.1 RC1リリース

23のバグフィックスと幾つかの変更を含む0.11.1のRC1がリリースされました。 リリースメールを簡単に要約すると次のようになります。 変更点(キャッシング、DBセッションストレージ)をとことんテストしてください 12月30日(日本時間だと31日かも)にゾーン情…

第29回PHP勉強会不参加表明

Agavi-0.11がリリースされたら参加すると表明していましたが、開催日の12月22日は予定が入っているため参加できそうにありません。 1月は1月で多忙が予想されるのでまず不可能です。 結果、agaviに関して発表するのは2月以降になると宣言しておきます。via: …

リリースノートをもう少し邦訳してみた

もう少し追加で邦訳してみた http://www.mugeso.com/agavi-docs/RELEASE_NOTESでも、アップロードする前にのむらさんにさき越されてた。 agavi-0.11 のリリースノート和訳(Views and Rendering) agavi-0.11 のリリースノート和訳(Configuration) 後々統…

agavi-0.11のリリースノート邦訳(冒頭だけ)

いまさらですが、しかも冒頭だけですが一応どうぞ http://www.mugeso.com/agavi-docs/RELEASE_NOTES

0.11リリース

待ちに待ったagavi-0.11がリリースされました。 今後は0.11ブランチをメンテしつつ、1.0リリースに向けてドキュメントの強化や外部ライブラリとの協調性向上作業を行っていくと思われます。

Agavi-0.11RC7リリース

なんとなくリリースメールを訳しておきます。 agavi-0.11RC7がリリースされました。 2つのバグが修正され、また2つの追加機能が実装されています。ADD: "default_extension" パラメータを通してレンダラ*1のデフォルト拡張子を直接指定できます (#594) (Davi…

そういえばagavi.orgのサーバでメンテナンスが予定されています

なんだか先ほどagavi.orgのDNSが落ちていたので思い出しました。 メンテナンスが行われるのは2007年10月24日(水) 2:25am (UTC)から およそ5:30am(UTC)までです。日本時間で言うと10月24日11:25から14:30になります。 メンテナンス中はagavi.orgドメインで行…

agavi-0.11RC6リリース

agavi 0.11RC6がリリースされました。

もうすぐRC6がでるっぽい

CHANGELOGにリリース日が追加されたりしています。もうすぐRC6が出ると思われます。 http://trac.agavi.org/changeset/2132

中でcreate_functionしている関数をループの中で使うとメモリを消費する

PHP

同様に、内部でcreate_functionしている関数を何度も呼び出すとメモリを消費してしまいます。 スコープを抜けてもcreate_functionで作られた関数の実体はそのまま残るということです

create_functionをループの中で使うとメモリを消費する

PHP

Agaviのソースを眺めていてるとcreate_functionをループの中で使っていたので少し気になったので調べてみた。

実際どれだけメモリを消費しているか知りたい方へ

PHP

こんなテストコードを書いてみました。一応同じ行に表示するようにしてあります。カーソルも消したかったんですがうまくいかず。。。(Poderosa利用)

メールの送り方。

一つ前のエントリの続きです。 IRCで開発者の一人であるMikeと話した結果、小馬鹿にされつつ、Responseをいじくらないでモデルを作れと言われたので素直に従うことにしました。モデルがexecutionContainerを持ってこれを実行し、結果をgetContentする方針で…

リクエストと違った方へもアウトプットしたい。

AgaviのView部分(Response構築)はよくできている。キャッシュありスロットありレンダラの切り替え有り。 こいつをなんとか他方への出力―メール送信、ファイル書き出し、どこぞのサービスへのPOST―なんかに使えないものかと考えた。 まず、AgaviResponseクラ…

goto文とその他諸々

PHP

ちょと前のエントリにid:masugataさんのところからトラックバックが来ていることにビックリしつつ。goto文とその他諸々についてのお話。 goto文の存在意義についてはやっぱり疑問は多いですよね。 例外処理が無い言語やLoop処理がネストしまくった状態で一気…

ある意味笑えるけど笑えない本

PHP

よくきたblogで紹介されていた本をちょっぴり立ち読みしてきた。あまりの内容についつい笑ってしてしまった。 ・文法的にE_NOTICEが出るサンプルばかり(最悪デバックできないほど,パフォーマンスに影響の出るレベルのログへの警告出力になります) これを読…

問題あるなと思ったら優先度の高いバグだった。

Action::initializeでrequest dataにアクセスしようとして「おや?これはもしかしてバリデート前のじゃないか?」とおもってTracを見ると優先度が高になっていた Potentially unsafe global request data is accessible in Action::initialize() and View::i…