PHP

Agavi-0.11でシステムアクションをcontextごとに分ける

Agavi-0.11でデフォルトアクション、ログインアクション、セキュアアクション、Error404アクションなどのシステムアクション(system-actions)の定義はsetting.xmlで行うが、ここではcontextによる分岐は例外テンプレートを除いては利用できない。 そこで、ど…

ifとswitchどっちがはやいねん(文字列比較)

ということでベンチとった。

php_pharが入っているとgo-pearが動かない

PHP

Windowsでphp_phar.dllを読み込んだ状態だと下記メッセージが表示されgo-pearが動かないです。 E:\Program Files\PHP>go-pear.bat phar "E:\Program Files\PHP\PEAR\go-pear.phar" does not have a signaturePHP Warning: require_once(phar://go-pear.phar/…

Agavi-0.11.3RC1リリースアナウンス

やあ、みんなAgavi 0.11.3RC1 がでたよ!このメンテナンスリリースはPEARパッケージ生成やgettextの複数形の取り扱いといった幾つかの小さな問題の修正と幾つかの新しい機能追加がなされています。 データベースハンドラは接続後に任意のSQL文を送れるように…

Agavi-1.0.0beta2リリースアナウンス

やあ、皆さん。1.0.0 beta 2 がでました!beta1リリースでの諸問題の修正と幾つかの変更や改良を行いました。大きい事柄を列挙します: モデルでアクション形式のドット記法(Foo.Bar.Baz)の追加 モジュール毎のconfig_handlers.xmlの追加 モジュール毎のオート…

Agavi-0.11.3RC1 Agavi-1.0beta2リリース

0.11.3RC1と1.0beta2がそろってリリースされたようです。1.0beta2からはアクション・ビュー・モデルのそれぞれの命名規則が厳密化され、たとえばmodules/Foo/action/Bar/BazAction.class.phpに配置されるアクションの場合はFoo_Bar_BazActionという名前にす…

MobilePictogramConveter PHP5対応版を更新

PHP

MobilePictogramConverterをPHP5に対応させたものを以前公開しましたが、全く動作確認をしていませんでした。今回はPHPUnit3によるテスト追加して一応動作確認を取ったのものを公開します。MobilePictogramConverter-1.2.0-php5

phpgeomobilejpを使ってみた

PHPで携帯の位置情報を扱うライブラリphpgeomobilejpを使ってみた。使い勝手がよさげ。ただ、format変換をかけたとき誤差が出るので注意が必要です。via: PHPで携帯位置情報を扱うライブラリ「Geomobilejp_Converter」を作りました

convert from camelCase to snake_case

キャメルケースからsnake_case(アンダースコア)に変換するメモ 1) echo strtolower(preg_replace(array('/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'), '$1_$2', $argv[1])), PHP_EOL; ?>

PHP<5.3での遅延静的束縛エミュレート

PHP5.3からは遅延静的束縛(Late Static Bindings)によって子孫クラスの静的メソッドを呼び出すことができるようになった。 同じことを5.3より前のバージョン*1で行う方法 = 5.3 (Late Static Bindings) echo '-- use sta…

Agavi-1.0BETA1リリース

ついに1.0系が来ました。とりあえずBETA1です。では早速アナウンスメール邦訳です。(一部、文が長かったので箇条書きに改めてあります。) こんにちは皆さん。3年強の開発の末、Agaviはついに最初の1.0マイルストーン 1.0.0 beta 1のリリースを迎えました! h…

「?:演算子」使える場面Part2

PHP

Doctrineは検索結果が0件の場合falseを返してくることを思い出した。ということはこれだ find($user_id, Doctrine::FETCH_ARRAY) :? array('user_id'=>'anonymous'); ?>

「?:演算子」使える場面だってあるさ!

PHP

そろそろそろそろ「?:演算子」について一言言っておくかに一言言っておくか最近、配列で利用する可能性のあるキーすべてをとりあえず初期化するようにしている。 null, 'enable_hoge'=>false, 'name'=>'nobody' ); ?> なので、 'anonymous', 'enable_hoge'=>…

PHP4お疲れ様

PHP

今日でEOLを迎えたPHP4 今までありがとう。

MobilePictogramCoverterを使おうと思った

PHP

MobilePictogramConverterを使おうと思った。ブログで報告されているバグがあるようなので修正してた。 それとPHP5的にグローバル定数ってどうなのよってことで、グローバル定数をMobilePictogramConverterクラスに取り込んでみた。 そして今、修正版を公開…

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使っているんだろう。。。

どうやら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だとそのままは動かせなくなるね。

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以上の修正と改良…