NP_cles()

12345678910111213141516171819202122232425262728293031

NP_MoblogはPHP 4.3.x以降対応?

 
投稿者:hsur 投稿日時:2005-06-01 - 04:01
カテゴリー:Nucleus Tips - / - トラックバック(default)- Views: 417

「NP_Moblogを1.2以降にしたら動かなくなった」という報告自体はいくつかのサイトで報告があることは確認しているのですが、動かない原因の追求が進まないままになっていました。これは自分の環境で再現できない類の不具合で結局手の出し方がわからなかったことと、詳細情報がなかなか集まらないということが原因でした。

ところが、今日ひとつ解決の糸口を発見しました。

洋梨? - TetraPod

モブログ用プラグインをNP_HeelloWorldからNP_Moblogへ移行。設定する場所が「プラグイン管理」から「あなたの設定」に変わっていた。戸惑いつつ設定。試しにメールを送ってみると、
Fatal error: Call to undefined function: is_a() in /..../nucleus/plugins/moblog/PEAR.php on line 250
なんてエラーが。。"

ここまで詳細*1に不具合を乗せてもらえると開発者としては非常に助かります。これで、ウチにトラックバックのひとつでもしていただければ、本当にパーフェクトでした。hisさんに感謝です。ソフトウェアを作らない方にはピンとこないかも知れませんが、たったこれだけのことで直せないバグも直せるバグになるのです

原因はPHPのバージョン?

このエラーから読み取れるのはPHPにis_a()という関数が定義されていないないということです。

早速、マニュアルでis_a()を調べてみる(PHP 4 >= 4.2.0, PHP 5)という記述があります。ということは、これ以前のバージョンにはis_a()という関数がないということになり、そのような環境下では報告されている現象が発生すると考えられます。

解決方針

ここまでくれば僕もソフトウェアエンジニアですから、解決方針を立てることが可能になります。

上記のページを読むとわかることですが、古いバージョンのPHPでもPHP_CompatというPEARモジュールを使うことによってis_a()が使用可能であると解説されています。

ということで、この問題は解決できそうです。もちろん、is_a()以外にもPHPのバージョンによって互換性の問題は発生しうるので、もう一度そのあたりの洗い出しを行う必要はありそうです。

  • *1: ログのレベルまでということです。ログはそのマシンに起こった事実を客観的に示してくれるので、バグの再現や追跡には欠かせない情報です。

このエントリは役に立ちましたか?

  

トラックバックについて [policy]

Trackback URL:
Trackbacks
なにげに、携帯で投稿できたらいいなと思ってぐぐってみると、NP_Moblogというものを見つけた。 ほほぉ…       にやり と、とりあえず導入してみる。 Nucleus v3.2以降でご利用くださいといわれる。 うちは3.1...
天叢雲 (2006/01/28 12:12)

Comments [policy]

No comments yet

Add Comments

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン