仕事で10ヶ月振りにPerlの世界からPHPへ帰ってきたのでMojaviをまじめに勉強しています。

Mojavi2.0 + Smartyで

「FATAL [/path/to/input.html.php:28] Undefined index: foo」

ってエラーを良く見ないでしょうか。
何となく、「Mojavi + Smartyだとエラーちょっと厳しいような・・・」とか思ってましたが、良く考えたらなんで変数が無いぐらいがFATALエラーなんだよ!

頭にきて調べたら分かりました。
optのloggingの中にあるErrorLoggerで、E_USER_*は処理してるんだけどE_NOTICEやE_ERRORなどのシステム発のエラーを考慮して無いです。

修正。

200a201
>                 case E_NOTICE:
205,206c206,208
<                 case E_USER_ERROR:
< 
---
>                 case E_USER_WARNING:
>                 case E_WARNING;
>                 
210d211
<                 case E_USER_WARNING:

これ、デフォルトがfatalなので、考慮してないエラーは全部FATALエラーになってました。
コレ直したら急に使い易い気がしてきた!

ITmedia エンタープライズ:企業で真価を発揮するP言語――Burton Group報告

 IT調査会社のBurton Groupによれば、PHP、Perl、Pythonの「P言語」は、C 、Java、C#(G言語と呼ばれることもある)などの汎用プログラミング言語を補完できる機能のために、過去4~5年で本当に真価を発揮するようになった。P言語はエンタープライズスクリプティングのようなミッションクリティカルな作業でも十分優れた実績を上げており、G言語よりも好まれてしかるべきだと報告書は指摘している。

|∧∧
|・ω・`) そ~~・・・
|oPo
|―u’

| ∧∧
|(´・ω・`)
|o   ヾ
|―u’ P言語 <コトッ

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

| ミ  ピャッ!
|    P言語

Rubyは?
LL(Lightweight Language)の方がいいな。

Creole :: About Creole

Features

Creole provides the following distinguishing features:

  • Built for PHP5: new object model, Exceptions
  • Interface-based system allows easy creation & registering of custom drivers or classes that wrap existing drivers to provide additional functionality (e.g. to log queries for debugging, do query performance analysis using EXPLAIN, etc.).
  • Fully object-oriented API
  • ResultSet scrolling: next, previous, first, last, relative, and absolute row fetching.
  • ResultSetIterator (SPL) provides an additional means for iterating over recordsets.
  • Comprehensive database metadata (database, table, full column info, pimary keys, foreign keys, indexes) using simple OO API.
  • Full unified type system (based on JDBC Types)
  • Simple, un-exceptional OO API for handling BLOB and CLOB data.
  • Type-specific methods handle any necessary conversions and escaping for inserting and retrieving values.
  • Native (no emulation) handling of autoincrement / sequence id generation.
  • Extensive unit test framework tests each driver using real databases.

PHP5専用のO/Rマッピングツール(最近はパーシステンスフレームワークと言うのかも)のPropel (via PHPLog)のサブプロジェクトCreole(クレオール?)。
PEAR DBみたいなDB抽象レイヤーのようです。

PHP5でこの辺のツール群はこういうのに全部取って代わられちゃうんでしょうか。PHP4 Mojavi2.0 DB_DataObjectはひよってますか。

Let the revolution begin – PHP_Archive 0.5.0 is live – Lot 49 – Greg Beaver’s blog

Well folks, PHP is about to change dramatically. With the release of the fully unit-tested PHP_Archive 0.5.0, the ability to package a library or an entire application into a single file is now a reality.

PHP変革の第一歩的なPHP_Archiveが遂に出ました。
これを使っていろいろ出てきそうですね!楽しみ。

Go OO and Event-Driven Architectures finished. – International PHP Magazine & Conference

I just finished my two talks and made the slides available online:

話題のInternational PHP2005 Conference Spring Edtitionのスライドの一部が。

それぞれ、PHP5でデザパタイベントドリブンのお話。
OOの話はみんなJavaの本買って勉強してると思うんですが、PHP5デザインパターンみたいな本だしたら今一冊も無いはずだから売れるかも?
もう一つの方もためになります。PHPにはあんまり無いようですが、patFormsPRADOなどコンポーネントベースのツールを紹介してます。特にリリース情報でチラ見してたPEAR Event_Dispatcherが超気になる。(PEAR野郎)

Perl の MVC フレームワーク Catalyst に入門してみた : NDO::Weblog

近頃の Web DB なアプリケーションは MVC でモデルは O/R マッピング、みたいなアーキテクチャが主流です。その際 MVC フレームワークを使って作るのはいわずもがなですが、最近 Ruby 界隈(?)では Ruby on Rails、Perl 界隈では Catalyst というのが熱い模様です。Java 界隈では Spring が熱いのかな?

そこで、Mojavi2.0ですよ。

・・・。
今日びMojaviでしかも2.0かよ。

つっても今の時点で大勢での開発標準フレームワークとして一番採用しやすいのはMojavi2.0だと言いたい!
MVCやフレームワーク自体に対する抵抗も多い中、どっちにしろControllerは必要だろ、だったらMojaviでいいじゃんぐらいな雰囲気です。
最悪、(実際にはやらないけど)全部VIEW_NONEでActionしか使わなくてもいいし、mojavi-all-classes.phpに全部入ってるんだから読めないことも無い。

まずPHPに多い何でも自作病から離れることが重要。DIContainerなヤツが枯れてきたころに一気にPHP5に移行できれば良さそう。

よくきたblog

4月下旬位からPHPDOCの翻訳が活発になってきました この1・2週間で200ページ前後の翻訳がされたでしょうか.

比較的ボリュームがある更新はOracleモジュール・XSLモジュール・XSLTモジュールなどでしょうか.この辺り下岡さんの翻訳です.goodjob.

最近のphpdoc ml活発ですね。

「仕事で必要になって訳したけど、どうせだったら還元しよう」

っていう良い流れができてきてる気がします。
そしてこまめにチェックしてコミットしてるELFさんもgj。

Sparkline PHP Graphing Library

sparkline.png

Aren’t there existing PHP graphing packages that will generate sparklines? Why write your own?
In theory, any PHP graphing package should be able to generate a sparkline. In practice, however, many of these libraries are written with assumptions about the size of graphs they’re going to produce. Simple rules about how to space tick marks on axes and what amount of padding belongs around graph elements begin to break down when the entire graph is 100×15 pixels.

小さい画像をシンプルに作るグラフィックライブラリSparkline。
これはかわいいかも!

よくきたblog

まるごとPHPでボツになった記事も権利を返してもらったので公開しました

すごい、うれし。

The Zend Php Certification Practice Test Book: Practice Questions For The Zend Certified Engineer Exam
John Coggeshall Marco Tabini
Marco Tabini & Associates, Inc. (2005/01/31)
売り上げランキング: 58,939
通常3~5週間以内に発送

Zend PHP Certificationの本も届きました。
これ結構良いです。単に問題集なので英語でも問題無し。テスト自体、PHPのSyntaxトリビアばっかりかと思ってたら一般的なWebアプリのセキュリティ(XSSとか)についての章もあってためになりました。

PHP4.3.0から入ってるストリーム関数群についても章裂いてるのでこの辺勉強しなくては。あと正規表現も。