Mojaviのロギングやエラーハンドリングを見ていて、普通のPHPでもエラーハンドリングについてよく解ってなかったことに気づきました。

PHP自体の機能を使ってシンプルなエラー処理の正解(宣言してしまえば反対意見が出るまで正解と言い張れる)を作ってみました。

seh-1.0.zip

<?php
include_once("getContents.php");

// 行数の取得
function getNumLines() {
    $contents = getContents();
    if ($contents === false) {
        trigger_error("getNumLines(): 行数の取得に失敗しました", E_USER_WARNING);
        return false;
    }
    return count($contents);
}
?>

seh.png

  • エラーメッセージはその関数(メソッド)を実行した奴から見た内容にする。
  • pg_connectの失敗だってE_WARNINGなのでJavaの(Exceptionじゃなく)Errorのようにスクリプトを実行し続けることができないような致命的なものだけE_USER_ERRORレベルのエラーを発生させる。(大体はE_USER_WARNING)
  • どのレベルからエラーを出すかは、error_reportingディレクティブで設定する。
  • ログはerror_logディレクティブで設定する。

これであってるのかどうか気になる!
すごい基本なのにわからないこと多過ぎです。

Mojaviのアレについてパッチを作ってみました。

ErrorLogger.class.php-0.1.patch.gz

もう一個のアレについても作ってみました。

mojavi-all-classes.php-0.1.patch.gz

独自に改造してくのは厭なので

バグじゃないことがわかる OR パッチが本家に採用される

ってとこまで行かないと気持ち悪いです。
(というか仕事でベースとして使う人にとって問題ある)

ref: 正常ってことは無いだろう
ref: Mojaviロギングに疑問

icc-12.png

謎のモチベーション!MSICCを更新しました。

msicc-1.2.zip

1.1からの変更点:

  • テキストエリアを追加。
  • 確認でフォームは一個。(via yoshuki)
  • XSS対策はhtmlspec~じゃなくescapeに変更。
  • 細かいとこを色々修正。

こういうの、おれが生まれた時に教えといてくれよぉ・・・。

ref: MSICC1.1

type_t.jpg

A4ノートからVAIO Type-Tに乗り換えてしまいました。
だいたいA4だとミニちゃぶ台にはでか過ぎるんだよ!

朝起きた時はパソコンなんぞ買う気はまったく無かったのに、実物を見た瞬間、

「2台買ったら安くしてくれないですか?」

などと店員に持ちかけるおれ。

PLANET PHP JAPAN ハズレ日記 (見切り発車)

Blogのアグリゲート PLANETの日本語のPHPな方々版を作ってみました。 http://catbot.sakura.ne.jp/planetphpjapan/

Planet PHPの日本語版、Planet PHP Japanがオープンしてます。

Planet PHPはPHPに関するエントリーをまとめてきて出してるメタブログみたいなもんですが、、、ヤラレタ!
おれのToDoリストの中の

  • メタPHP Blog(planet php jp)

という項目を悲しく削除させていただきたく存じます・・・。
くやしいがgj。

キョロちゃん主催のMixiのコミュニティー、「言いたいだけ」が面白い。
会社でチラ見すると吹き出しちゃって危険です。

言いたいだけ

6: キョロちゃん

【監督】ジョン・ウー


41: 阿部

僕らはいつも以心伝心


42: キョロちゃん

ざわ・・・
      ざわ・・・・
   ざわ・・・


49: キョロちゃん

言いたい事も言えないそんな世の中じゃ

POISON


56: キョロちゃん

新作漫画ウルトラBも載ってるよ


57: キョロちゃん

マイティ・モー


58: キョロちゃん

伊達にあの世は見てねーぜ!

Yahoo!グループ : J2EE Development without EJB ( Javaのメーリングリスト)

Rod Johnson, Juergen Hoeller著「J2EE Development Without EJB」の読書会用ML。別名「J2EE Development Without Hair

オブジェクトについて考えすぎるとハゲる。

mf.jpg

Debian—ニュース—Debian GNU/Linux 3.1 がリリース

Debian Project は、約 3 年にわたる絶え間ない開発の末、Debian GNU/Linux 3.1、コードネーム「sarge」の公式リリースをここに発表いたします。

sargeきたぁああああああ!

むしゃくしゃしてやった。
相手は誰でもよかった
まさかこんなに遅れるとは思わなかった。

などと皮肉は言わず、素直に喜んで行きたい。
2日前ぐらいにsargeのDebian Installerで入れてみたけど手順減っててびっくりしました。
Woodyでbf24→新しいPCだからNICのドライバが無ぇのでDLしてきてFDに入れて・・・とかやってたのにsargeのInstallerはドライバ選ぶ間もなくDHCPの設定も完了しやがりました。

アウトプット主義!ということでこの間やった勉強会で使った資料。

基礎Mojavi.pdf

まるごとPHPのMojavi記事でSmarty部分が腑に落ちてなかった一部(1人)にだけ好評。

何故ソレにこだわるのか一般の方には共感が得辛いかもしれないMSICCを一部修正しました。

msicc-1.1.zip

修正点:

  • ディレクトリ構成をMojavi Wikiスタイルに変更。(smartyをどこに入れればいいのかまだ悩み中です)
  • Registという言葉は無い(via yoshuki)のでRegisterに変更。
  • ErrorLoggerでレアなWARNINGに対応。
  • SmartyFilterでcompile_idにcurrentActionも追加。

噂ではPHPでの開発では国内最大手と思われる楽○もPHP4 Mojavi2.0.0を標準に採用とか。やはりある程度の規模の開発ではまだPHP5は怖いのかも。PHP4 Mojavi2.0.0の枯れた環境下の正解を(仕事用に)さっさと知ってPHP5を調べて行きたい!

ref: MSICC回答編