Agavi

携帯向けAgavi拡張の設計

社内では携帯向けAgavi拡張(KtaiAgavi/非公開)を作って利用しているけども、どうも使いにくいので設計を見直してみたい。折角なので公の場で開発しようかと思う。 キャリア判定 KtaiAgaviではキャリア判定をRequest初期化時にUserAgentを元に行っている。け…

きちんと伝えられなくて申し訳ない

id:yoyaさんが発表内容に触れてくれていたんですが、きちんと伝えられていなかったようなので補足させていただきます。 冒頭のフレームワーク話しは XSS対策で入力バリデート強化って時点で…なんていうか、サニタイズ言うなや的な… XSS脆弱性の報告によって…

Agavi 1.0.0がついに出ました。

via: http://blog.agavi.org/post/81642413/its-finally-done-agavi-1-0-0-has-arrived リリースアナウンスおよびリリースノートは近日中に翻訳して公開します。

コードテンプレート

NetBeansでAgavi利用のコードを書くときに便利なコードテンプレート public function execute${Target}(AgaviRequestDataHolder $rd) { ${cursor} } これをexあるいはetという省略名で入れておくとexecuteWrite,executeRead,executeJson,executeXmlなんかを…

0.11.5以前1.0.0beta7以前のバージョンにXSS脆弱性が発見されています

RFC 3986に従っていない一部のブラウザ(Microsoft Internet Explorer 6,7)からのリクエストによりREQUEST_URIやQUERY_STRINGが汚染される問題により、下記のメソッドの戻り値が汚染される問題が判明しました。 AgaviWebRouting::gen(null) 'bar') )などは除…

factories.xmlで定義されたクラスの初期化順序

factories.xmlで定義されるシステムクラスの初期化のタイミングが気になったので調べてみた。以下はfactories.xmlのコンパイルキャッシュです。 databaseManager = new AgaviDatabaseManager(); $this->databaseManager->initialize($this, array ()); $this…

Agaviで生成されるmod_rewrite

Agaviのコマンドで生成される.htaccessに書かれているmod_rewirteは RewriteRule ^$ index.php?/ [QSA,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) index.php?/$1 [QSA,L]これだとディレクトリが存在して…

BooleanValidator

なかったので作ってみた * * @version $Id$ */ class BooleanValidator extends AgaviValidator { /** * Validates the input. * * @return bool * * @author MugeSo <mugeso@mugeso.com> */ protected function validate…</mugeso@mugeso.com>

誤った脆弱性報告

Agaviに関する誤った脆弱性報告が出回っていたようです。ref:False Agavi Vulnerability Reports 簡単に言うとフランスのある代理店がAgavi-0.11を用いて制作した複数のサイトでディレクトリトラバーサル脆弱性が見つかり、これはフレームワーク外の実装に問…

International PHP Conference 2008

ドイツのマインツで行われる国際PHPカンファレンス2008(International PHP Conference 2008)でAgaviの公演が行われるそうです。 是非とも行きたいところですが、何せドイツは遠い。 あと、参加するAgaviユーザのためにAgaviTシャツも用意しているそうです。…

Agavi-0.11.4リリース

Agavi-0.11.4がリリースされました。 以下リリースアナウンスの邦訳 今日は皆さんAgavi 0.11.4 がでました!これは0.11.3で導入されたサンプルアプリの問題やautoload.xmlへのクラス記入漏れといった諸問題の修正をおこなったメンテナンスリリースです。 ま…

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

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

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という名前にす…

Agavi-1.0BETA1リリース

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

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リリースしてます

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

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

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

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

agavi-0.11.1RC3がリリース

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