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

libharuのバージョン上がってた

気がついたらlibharuのバージョンが2.1.0に上がってました。でも、pecl haruが変更されてないので動かないかも。 後で試してみます。

agaviの雑学

今日は技術的な話は置いておいて、Agaviの名前に関するお話。 Agaviという名前はAgave(英語名。和名ではリュウゼツラン)から来ている。Agaveはモハーヴェ砂漠(Mojave Desert)など北アメリカ南西部に自生している植物だそう。そしてモハーヴェ砂漠はAgaviの前…

slotから外側のviewにお伝えしたいことがある。

slotとして呼び出されたviewやテンプレートから外側のviewのattributeあるいはテンプレート変数に値を入れたい。具体的にはcssやjavascriptを指定したい。javascriptはbody内でも呼び出せるけどできればヘッダに配置したほうがきれいじゃない。あと同じの2回…

$view->setAttribute('_title', 'タイトル')をテンプレートで呼び出す

Agavi-0.11系でテンプレートから$viewを使えるように設定している場合、$view->setAttribute()を呼び出すことでそれ以降に呼び出されるレイヤでそのアトリビュートが有効になり$templateからアクセスできるようになる。 これを使うとデコレータで用いるMaste…

レイアウトごとにデフォルト属性を設定

この記事を修正翻訳したものをagaviのuser-MLにpostしました。そちらもあわせてご覧ください。 Agaviにはoutput_type.xmlで設定するレイアウトというのがある。これをViewで$this->loadLayout($name);するとテンプレートやらスロットやらを読み込んでくれる…

Agavi-0.11.2リリース

Agavi-0.11.2がリリースされました。このリリースでは0.11.1から使い勝手が大幅に向上していると思います。 まずは、毎度のリリースアナウンス邦訳を。(やたら短いので少し砕けた日本語にしてみた) やあ みんなAgavi 0.11.2 でました!今回はRC2から2つだけマ…

Agavi-0.11.2RC2リリース

Agavi-0.11.2RC2がリリースされました。例によってアナウンスメールを邦訳しました。 こんにちは皆さん、 Agavi 0.11.2 RC2 が出ました! http://trac.agavi.org/browser/tags/0.11.2RC2/CHANGELOG にRC1からの3つの細かな修正についての詳細があります。 で…

0.11.2RC1リリースアナウンスとリリースノート

リリースアナウンスから やあ、みんな Agavi 0.11.2 RC1 がでました! この保守リリースでは少しのバグフィックスと幾つかの機能追加を行っています。 注目すべきは、1.0からもいくつか機能がバックポートされた点です。 レイアウトを伴ったものも含めてView…

0.11.2RC1リリースしてます

リリースアナウンスは後で訳します

勉強会で発表しようとしていた資料

PHP

PHP勉強会にはドタキャンで参加できず申し訳ありませんでした。枠の関係で参加できなかった方本当にすみませんでした。 発表するために作っていた資料をアップしました。 http://mugeso.com/XMLinAgavi.pdf

とりあえずベンチ

via: 問. 配列を+(プラス)演算子で加算すると? : アシアルブログ [senna@vine senna]$ time php -r '$a = range(0,10); $b = range(0, 10); for($i=0; $i<1000000; $i++) $c = array_merge($b, $a);' real 0m24.783s user 0m23.270s sys 0m0.030s [senna@vi…

ものすごくどうでもいいかもしれないけれど

PHP

なんでis_numeric使わないでpreg_match使っているんだろう。。。

Firefox Download Day 2008 国別ランキング

昨晩作って力尽きて寝てる間に他で紹介されてしまったわけですが、FirefoxDownloadDay2008の国別登録者数ランキングを作りました。 リアルタイムでとってきてます。参考までにどうぞ。

どうやらpecl/haruがインストールできないのでlibharuのrpm更新しました。

PHP

本番環境にpecl/haruをインストールしようとしても通らなかったので、調べてみるとlibharuのrpmに不具合がありました。 pecl/haruはビルド時にhpdf.hを必要としますがこいつが芋づる式にlibharu内のヘッダを読み込んでいるのに、libharuは-sオプションつけて…

agavi-1.0はPHP5.2.0以降を必要とするらしい

http://trac.agavi.org/changeset/2503 RHEL/CentOS5.1だとそのままは動かせなくなるね。

これイタズラに使えそうだ

FlashでWindowsXPを再現しているらしい。http://www.readatwork.com/ だれか席を離れている間にこの画面表示しといたら面白いことになりそうだ。via 秋元@サイボウズラボ・プログラマー・ブログ

XPath編集するのに便利なもの

Web

FPFを使うにはXPathをいろいろ使うことになる。そこで便利ツールを紹介. XPath式エディタ2

FPFのerror_class_mapの動作

agavi-0.11.1まではerror_class_mapで指定したXPathは、XPathで指定した要素が存在するかをチェックするためだけに使われています。 以前書いたマインドマップではこれを誤ってXPathで指定した要素に指定されたクラスを追加すると書いてしまいました。ごめん…

ルーティングのパターンで\w{2,5}をつかう

Agaviのルーティングではルートのパターンを正規表現で指定します。その際、回数指定の繰り返しをあらわす{}を使った記法がそのままでは通りません。 なぜうまくいかないのかといえば、agavi内で正規表現を拡張してパラメータ指定を行えるようにしたりしてい…

agavi-0.11.1リリース

agavi-0.11.1がリリースされました。このリリースはagaviの最新安定版となります。 下記にリリースアナウンスの邦訳を掲載します。 やあ、みんな。 Agavi 0.11.1のさし当たっての有用性についてアナウンスしたいと思います。 0.11.0から100以上の修正と改良…

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だよね…