デリゲートでBBCodeの拡張を Part2
このブログで、PHPのソースを紹介する時、以前は、WordPressのプラグインをつかって、色分けされたソースを表示していました。
しかしながら、同様のことはXOOPSのDelegateを使用しても実現出来ます。少し前の投稿からこのDelegateによって拡張したBBCodeの[phpsrc]タグを使用するように変更しました。 (続き...)
このブログで、PHPのソースを紹介する時、以前は、WordPressのプラグインをつかって、色分けされたソースを表示していました。
しかしながら、同様のことはXOOPSのDelegateを使用しても実現出来ます。少し前の投稿からこのDelegateによって拡張したBBCodeの[phpsrc]タグを使用するように変更しました。 (続き...)
XOOPS Cube Legacy2.1では、モジュール開発者向けにモジュールの実行モードを2つ追加しました。
従来のXOOPS 2.0.xでは、モジュール開発者がXOOPSの実行環境を読み込む事によるオーバーヘッドを回避するために、
<?php
$xoopsOption['nocommon']=1;
include '../../mainfile.php';
?>
というように書くと、XOOPS_ROOT_PATH等のmainfile.phpに定義された定数だけを読み込むだけで、include/common.phpのinclude実行を行わない様にすることができます。
XOOPS2.0.xでは、この状態でXOOPSが提供しているfunctions.php等を独自に参照することが可能だったのですが、XOOPS Cube Legacy2.1ではfunctions.php内の関数が、XCube_Root等の XOOPS Cubeクラス群を参照するようになったため、定数を読み込んだだけの状態では、functions.phpのincludeに失敗してしまいます。
そこで、XOOPS Cube Legacy2.1 Beta3-d の時点で、$xoopsOption['nocommon']が設定されていても、必要最低限のXOOPS Cubeクラス群の初期化を行うように変更しました。
これによってXOOPS2.0.x用のモジュールで$xoopsOption['nocommon']を指定しているプログラムの大半が稼動可能になったはずです。
しかしながら、$xoopsOption['nocommon']を指定する目的の大半が、特定処理のオーバーヘッド軽減による高速化であったことから、この「必要最低限のXOOPS Cubeクラス群の初期化」でさえも重く感じる場合があるようです。
何人かのメンバーとの討議の結果、新たに2つのPHP定数を用意して、これらのモジュール開発者の要望の期待に答えることにしました。 既存の$xoopsOptionでは無くPHP定数にしたのは、新たなグローバル変数の定義をコアチームとしては避けたかったからです。
(続き...)
少し時間がたちますけど、GIJOEさんの記事、「Cube2.1betaをデバッグする前に」で、XoopsErrorHandlerの復活について書かれていましたが・・・・
引用:
このあたり、エラーハンドラの有効無効を選択式にする、という話をminahitoさんから聞いていたような気もするのですが、ぱっと見で一般設定には見つからないので・・・・・
この部分、minaitoさんの意図はXOOPS Cube Legacy2.1から、デバッグマネージャの初期化がDelegateによって実装されたこともあって、preloadで換装できますという意味だと思います。 (続き...)
Eclipse環境下のPHP IDEが、ZendやIBM支援の下でEclipse Project下で開発途上ですが、10月末に一挙にバージョンが0.7にあがって、stable buildとして、S20061026-M3がリリースされてました。
今までのリリースも何度となくダウンロードしてはテストをしていましたが、デバッグ環境が最近のバージョンではかなりの進歩を見せています。
従来のバージョンでは、ある決まったURLに対してのリクエストに対してのみのデバッグしかできず、単体テストレベルのデバッグしか行えなかったのですが、今回ダウンロードしたバージョンでは、ブラウザーでの対話中もデバッグが有効なままなので、任意箇所にブレークポイントを設定して、通常の対話シーケンスの中でのデバッグかかなり楽にできるようになりました。
簡単に言うと、今までは単純なGETリクエストのページのデバッグしかできなかったのが、POSTリクエストによるデータ更新なども簡単にトレースを取ることができるようになったということです。
WEBサーバと連携してのデバッグには、別途ZendFrameworkをダウンロードしてその中のZendDebugger.soをWEBサーバのPHP Extentionとして登録し、さらにEclipseを稼動させるPCのIPアドレスをphp.ini内にデバッグ許可端末として追加してあげる必要があります。
つまり、php.iniに
zend_extension="/usr/lib/php4/20050606/ZendDebugger.so"
zend_debugger.allow_hosts=192.168.252.254
のような行追加が必要となります。
Eclipse PHP IDE では、minahito氏が絶賛しているVS.PHPに比べると使い勝手は少し落ちますが、VS.PHPと同様にphpdoc形式のコメントを元にしたソース編集時の入力補助機能もありますので、無償ということを考えると、今までのEclipse環境下のTruStudioやphpeclipseに比べても、
かなりお勧めだと思います。
いずれにせよ、このようなデバッグ可能な開発ツールでXOOPS Cubeをステップ実行させると、どのようにしてXOOPS Cubeが動作しているかを目に見える形で理解するための良いツールとなるでしょう。
10月28日に日本電子専門学校にて開催されました、オープンソースカンファレンス2006 Tokyo/Fall(OSC2006 Tokyo/Fall) のセミナーでの発表に使用させていただいた資料を公開させていただきました。
準備不足もあって、十分な内容の資料とはなっておりませんが、ご参考まで。
49 queries. 0.010 sec.
Powered by WordPress Module based on WordPress ME & WordPress
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
« 11月 | ||||||
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |