だいこんの日々2

軸足をtwitterとfacebookに移しつつも、技術的な話はここに書いていきます。

Ethna

S2Ethnaのサーバ

S2Ethnaのサーバが死んじゃいました。復旧までしばらくお待ちください。いつになるかわかりませんが。

S2Ethna v0.2リリースします

予告通り、EthnaでS2ContainerとS2Daoを使えるようにする「S2Ethna」のv0.2を公開します。DI+AOPコンテナ、O/Rマッピングという強力なツールが使用可能になります。S2Ethna v0.2http://daikon.tea-nifty.com/archive/s2eth_02.zip今回の更新は、・Exception…

S2Ethna v0.2リリース予告

S2Ethna v0.2を、今月の肉の日にリリースします。(と自分を追い詰める。)いやぁ、昨日、うまい肉を食ってきたもんで…。サイズが尋常ではなかったよ(^-^;

FancyUpload

PHPでのファイルのアップロードは味気ない&大きなファイルだと状況がわからないので、プログレスを表示しようと思い、FancyUploadというFlashを使ってみました。まぁ、アップロードは確かにできるだがいろいろと問題が。まず、認証が必要なページで認証を通…

続S2EthnaとS2Container.PHP5-1.2.0-RC1

S2Container_S2Loggerの構造が結構変わったようだ。1.1系はS2Container_S2LogFactoryを呼んで、その中でS2Container_SimpleLogger(設定でlog4phpに変更可)を呼んでいた。1.2系ではLoggerFactory(デフォルトはS2Container_SimpleLoggerFactory)を呼ぶよう…

S2Ethna 0.1とS2Container.PHP5-1.2.0-RC1

S2Container.PHP5-1.2.0-RC1がリリースされました。 S2Ethna v0.1だとログが画面に出力されてしまうようです。S2Container_ZendLoggerFactoryというクラスが追加されているのでそこら辺の影響だと思いますが、v0.2で対応しますので、S2Ethna v0.1はS2Contain…

EthnaのE_STRICT対策パッチ

Ethnaでerror_reportingをE_STRICT有りにしておくと、たくさんの注意が出てくる。これじゃあ、自分のコードのチェックもままならない。ってことで、Ethna v2.3.2+PEAR v1.6.1用のE_STRICT対策パッチを作ってみた。http://daikon.tea-nifty.com/archive/php5s…

Ethna v2.3.2

Ethnaバージョンアップ記念書き込み。v2.3.2になりました。Breaking B.C.は無いので、v2.3系を利用している方はぜひ更新しておきましょう。私の指摘部分の修正もちょこちょこ入っています。っつーか、このブログのテンプレートを更新する口実が欲しかっただ…

またもやトランザクションと格闘

EthnaのAppManagerに、S2Dao.PHP5のTxManagerを兼ねさせて使っているのですが、昨日からまたトランザクション関連で問題発生。2点ほど悩んでいたのですが、やっと解決しました。まず、トランザクションAdviceとしてpdo.requiresNewTxを適用していると、resum…

Web版Ethnaコマンド

いちいちコマンドプロンプトに落ちてコマンドを打つのが面倒なので、Web版Ethnaコマンドを作って使っていたのですが、意外と使えるような気がしたので公開します。Windowsでのみ動作確認してます。Linux他はパーミッションの関係でダメかも(^-^; っつーこと…

S2Ethnaという名称

kloveさんとハタさんに見つかってしまったようなので、記念カキコwtwitterあたりで誰かが「いつの間にS2ファミリに?」というのを見かけたけど、S2ファミリに入ったわけではないですよ。どっちのメンテナでも無いし。ハタさんの言う「EthnaもS2の仲間」が正…

S2Dao.php5でトランザクション(2)

昨日、トランザクションが効くようになったのだが、その裏で大変なことに。参照系(SELECT)はトランザクションに関係なく動作するのだけれど、更新系(INSERT/UPDATE/DELETE)はトランザクションを起こさないと更新できなくなってしまった。まぁ、PDO::ATTR_AUT…

S2Dao.php5でトランザクション

今日は、S2Dao.php5(とS2Ethna)でトランザクションに四苦八苦。公式の「PDOトランザクションの自動制御」を読みながら作って、とりあえず正常系は動いた。(ように見えていた。)異常系として、トランザクション中断によるrollbackを確認するために例外を投げ…

S2Container.PHP5でタイムアウト

S2Container.PHP5(とS2Ethna)を使っているプロジェクトの環境を新たに構築した。すると、なんだか重い。というかタイムアウトする。Fatal error: Maximum execution time of 60 seconds exceeded in XXX\lib\Ethna\class\Ethna_Error.php on line 21なんで?…

S2Daoでセッション管理

S2Ethna v0.2に向けて、S2Daoを使ったセッション管理機能(Ethna_SessionをファイルじゃなくてDBで管理)を作ってみた。通常のEthna_Sessionはファイルをセッション情報の格納先にしているけれど、ちょっと規模の大きいサイトを構築すると、負荷分散でウェブサ…

S2Ethna v0.1リリースします

EthnaでS2ContainerとS2Daoを使えるようにする「S2Ethna」を公開します。DI+AOPコンテナ、O/Rマッピングという強力なツールが使用可能になります。S2Ethna v0.1http://daikon.tea-nifty.com/archive/s2eth_01.lzhhttp://daikon.tea-nifty.com/archive/s2eth_…

久々にEthna

久々にEthnaをいじる。EthnaのWindows向けバグ修正の確認をしてみた。けど、別のところで問題が発生するようになっていた。ここら辺は変更されていないはずなので、元々出てるのか。とりあえずメーリングリストに検証結果を流しておいた。しばらく前から、Et…

Ethna 2.3.0 Preview2リリース

Ethna 2.3.0 Preview2がリリースされた。のはいいのだけれど、今回はかなり互換性がなくなっている部分があって対応が大変だ。まず、Ethna_Controller::_setDefaultTemplateEngine()のパラメータに互換性がなくなっている。changesにある通り、最初に$smarty…

EthnaのCopyright

haltさんのブログを見てたら、私の名前がCopyrightに。SimpleTestのコードで少し貢献(?)しただけなのに申し訳ない。しかし、このやり方してたら旧BSDライセンスの宣伝条項のようになっちゃわないだろうか(^-^;最近は、なかなかコードをいじる時間もなく、企…

続Ethna_UnitTest

メーリングリストに急いで投げたときの、汚いままのコードがコミットされているのに気づいた。ちょっと見苦しいので、haltさんにパッチを送った。

Ethna_UnitTest

Ethnaにユニットテストが追加されているのに気づいた。わーい、コミットされたー。

EthnaでPEAR::Auth 1.3.0 その2

問題なく動いていると思ったら、問題ありでした…(ノд・。)PEAR::Auth 1.3.0から、認証時にsession_regenerate_idを呼んでくれちゃう仕様になった模様。この関数を呼ばれると、Ethnaがせっかく長いセッションID(64文字)を生成してくれているのに、PH…

EthnaでPEAR::Auth 1.3.0

PEAR::Auth 1.3.0がリリースされたので導入してみたが、認証関係がうまく動かなくなったorz以前もPEAR::Authのセッションの扱いで苦労したが、またセッションがらみ。今回は、PEAR::Authオブジェクトの生成時にセッションを開始するようになったので、Ethna…

session_regenerate_id

PHPはセッション固定攻撃に弱い。対策の一つとしてsession_regenerate_idという関数を使う方法がある。Ethnaでsession_regenerate_idを使うと、セッションIDが短くなってしまうため、セッションハイジャックに弱くなってしまう。ということでEthna用の関数。…

Smartyのtruncate

Smartyのtruncateを使っていると、日本語が途中で切られてしまうことがある。まぁ、日本語対応した関数使ってないから当然だわな。で、日本語対応のtruncateはないものかと思って調べると、mbtruncateというSmartyプラグインが何個か見つかる。このプラグイ…

EthnaとPEAR::Auth 続き

前日の仕事の続き。休みだというのにねぇ。追跡した結果、PEAR::Authの内部でsession_start()されていることが原因と判明。Ethna_Sessionが内部でセッション開始フラグを持っているので、PEAR::Authでセッションを開始しても、無視して新たなセッションを作…

EthnaとPEAR::Auth

EthnaとPEAR::Authを組み合わせて認証機構を作っているのだけれど、どうも挙動がおかしい。認証後にセッションが変わってしまうらしく、認証済みの情報を保持できない。粘って解析し続けたけれど、疲れたので帰る。