Doxygen for XOOPS Cube (3)
私はこのブログを昨晩アップデートできませんでした。さて、いよいよ私達はDoxygen
によってXOOPS Cube
のソースコードからドキュメントを生成します。
Doxygen
は Doxywizard
という名前の GUI
アプリケーションを備えています:
それはDoxygen
のためのコンフィギュレーション・ファイルを生成し、そのコンフィギュレーション・ファイルによってDoxygen
を実行します。さらに、Doxywizard
にはウィザードとエキスパートという、初級者と上級者のための、2つのセッティング方法があります。PHP
プログラムはほとんど高度な設定を必要としないので、ウィザードモードの使用法だけを覚えればよいでしょう。
Doxywizard
を実行し、それから、 Wizard ボタンを押します。
あなたがダウンロードした XOOPS Cube のディレクトリを '
Source
code directory'
にセットしなさい。そして、サブディレクトリを解析するために、 'Scan
recursively'
オプションをチェックしてください。それからドキュメントを収納するディレクトリを作成し、それを
'Destination directory'
にセットしてください。 'Project name'
と 'Project version or ID'
は自由です。
次に、 Mode
タブをクリックしてください。
'All entities'
を選択してください。それにより、すべてのエンティティが、それがドキュメントシステムのためのコメントを持っているかどうかに関係なく、ドキュメントのために解析されます。それから、
OK ボタンを押してダイアログを閉じてください。
次に、このセッティングをファイルに保存しなければなりません。Doxywizard
は Doxygen
を実行させるためにコンフィグレーションファイルを必要とするためです。Doxywizard
はあなたが保存したファイルを Doxygen
のためのコンフィグレーションファイルとして用います。
次に、 Doxygen
がドキュメントを生成するためのテンポラリファイルを作成するディレクトリを指定しなければなりません。あなたの
OS のテンポラリ・ディレクトリか、新しいディレクトリを作ってそれを指定するとよいでしょう。
あなたはこれでドキュメント生成のための最低限のセッティングを終えました。最後に、 'Start'
ボタンをクリックしてください。ドキュメントがあなたが指定した転送先ディレクトリに生成されるでしょう。
あなたは再度これらのセッティングを行う必要はありません。いつでもコンフィグレーションファイルをロードし、ドキュメントを生成できます。
Doxygen for XOOPS Cube (2)
XOOPS は、 PHPDoc をドキュメントシステムとして使います。Doxygen と、 PHPDoc
の両方は、 javadoc
のドキュメントタグを扱うことができます。しかし、各ドキュメントシステムは、いくらかのオリジナルの規則を持っています。そして、
Doxygen が C/C++ のために開発されてきたので、 Doxygen は、 PHP
プログラムのために上手にドキュメントを生成できないかもしれません。
しかしながら、 Doxygen は、 PHPDoc よりあなたのために使い易いでしょう。私は、
Doxygen によって生成されたドキュメントが好きです。XOOPS Cube において、我々は、
Doxygen のオリジナルのタグを利用するべきでありません。従って、生成されたドキュメントは、
Doxygen の最大効果を含みません。しかし、それは、十分です。
試してみましょう。まずはじめに、 CVS
から最新版をチェックアウトしてください。それをするために、あなたは、 XOOPS Cube Gems
でこの記事を参照できます。次に、 Doxygen
をダウンロードして、そして、それをインストールしてください。
次のエントリで、あなたは、これらのソフトウェアによってドキュメントを生成するでしょう。また明日お会い致しましょう。
Doxygen for XOOPS Cube (1)
XOOPS Cube が多くのファイルと多くのクラスを持つため、 XOOPS Cube
のソースコードを読むことは難しい。Cube のソースコードを読むために、私は
Doxygen
を推奨します。 Doxygen は有名なドキュメントシステムであり、ソースコードを解析して HTML
ドキュメントを生成します。そうです、それは
javadoc
の一種です。Doxygen
がクラス名とファイル名でドキュメントをサーフィンするためにハイパーリンクを作成するので、生成されたドキュメントは本当に有益です。あなたはネットサーフィンをするように「ドキュメントサーフィン」をすることができます。
ソースコードをあなたのドキュメントに出力するために、ソースコードオプションを有効にすると良いでしょう。生成されたソースコードページは、クラス名と定数のところで、同様にリンクを含んでいます。これらのページはIDEを使うより良い。あなたは必要なクラスと定数を容易に調査し得ます。
恐らくあなたはソースコードを読むのに IDE を使うことをやめるでしょう(その IDE が
VisualStudio だとしても)。
ドキュメントシステムのためにすべてのクラスがコメントを持っているわけではないので、生成されたドキュメントは十分に我々の書いた概要を含んでいません。しかし、私は
Doxygen が重要な情報を自動的に生成するので、そのドキュメントはあなたにとって有益だと思います。
Today's Report
私はまた風邪を引いてしまいました。
最近、私は週末になったら風邪をひいています。私のブログは2日間更新されませんでした……
さて…
私たちはXOOPS Cube2.1のユーザモジュールで多くのファイルをチューンアップしました。そして、私はいくつかの重要なフィーチャーがAlpha3から4への変化の中で動作不良を起こしていることを知るに至りました。
グローバルサーチサービスは古いXCube_Serviceのクラスと共に開発されました。しかし、XCube_Serviceがかなり変わってしまったので、現在、それは動きません。XCube名前空間のデザインはBeta2で決定されるでしょう。
したがって、今は私たちは一時的なデザインでこのクラスを修復するつもりです。
ユーザモジュールのすべての動作フォームは既に調整済みです。それらのクラスにも、多くの問題がありました。加えて、
cubson
が時々アップデートされたために、アクションクラスのすべてが一様ではないという別の問題もあります。それらのコードをきれいにするために、私たちは手作業で部分修正をしなければなりませんでした。
そのような問題はcubsonの弱点の1つです。
そのほか、Alpha3のいくつかの重要な欠陥がいくつかのすばらしいレポートによって修正されました。私たちは偉大なレポーターの協力に感謝します。
私は、明日CVSにこれらの変更をコミットするつもりです。
VS.PHP (3) - The comment is power
VS.PHP
は型セーフでない言語である PHP
でインテリセンスを利用するための興味深いアイデアを備えています。これを見てください:
class
Foo1
{
function methodFoo($num)
{
}
}
function foo($a,
$b)
{
}
foo()
内では、 VS.PHP
は $a
の型を知りません。そのため、 foo()
の中でコードを打っても、 VS.PHP
による支援は望めないでしょう。
私たちはしばしば、ドキュメントシステムのために、関数定義の先頭にコメントを書きます。それらのコメントのフォーマットは
PHP
の文法によって定義されたものではありません。しかし、 phpdoc
や Doxygen
といったポピュラーなルールがありますね。 VS.PHP
は変数の型をそのコメントを読み取ることで解析します。このサンプルを見てください:
class
Foo1
{
function methodFoo($num)
{
}
}
/**
* @param Foo1 $a
*/
function
foo($a,
$b)
{
}
私はシンプルなコメントを
foo()
の先頭に加えました。このようなコメントが書かれていれば、 VS.PHP
はインテリセンスを働かせるために型を解析することが可能です:
これは、型セーフではない言語を取り扱うすべての IDE
のための偉大なヒントす。そして、そのアイデアは私達に迅速なタイピングをもたらします。それは私達に必要なものです。(これに慣れきった)私は
VS.PHP
なしで PHP
を書けません。
CVS update notification mail
私たちの崩れたロードマップを回復するために、XOOPS Cube
のCVS
は日々アップデートされています。そして、開発者がCVS
にアップデートしたソースコードをコミットするとき、あなたは特別なメーリングリストによって通知を受け取ることができます。
通知は下手な英語のコメントと diff
が書かれています。あなたがコア開発チームの動きが気になるのであれば、このML
は役に立ちます。
通知を受け取り始めるために、あなたはこのページであなたのメールアドレスを登録しなければなりません。
登録ページは日本語で書かれています。
しかし、通知が英語で書かれているので、心配しないでください。
以下のイメージを見てください。あなたはメールアドレス、パスワードと、確認パスワードを以下のテキストボックスに書くことができます。
さらに、ファイルにおけるコメントは決して完璧ではありませんが、いくつかの役に立つ情報を含んでいます。CVS
に関するログとこれらのコメントは変更を理解しやすくするでしょう。
VS.PHP (2) - Class browser
VS.PHP
のもうひとつのクールな特徴がクラスブラウザです。
クラスブラウザは、php
ファイルを分析して、どれがクラス、特性、およびメソッドの名前を含んでいるかをリストに示します。
私たちは、リストをクリックすることによって、指定された位置までジャンプすることができます。
そのうえ、あなたはキーワードで探すことができます。
はい、あなたはC++
、C#
、などと同様にクラスブラウザを使用することができます。
そして、選んだクラスとメソッドへの折りたたみ式のメニューは利用可能です。
だれもカーソルを動かすための時間を浪費したがっていません。
この機能は複式学級を含んでいるファイルに便利です。
クラスを選択した後に、あなたはクラスのメソッドを選択することができます。
良いツールで、私たちは幸福になります!
VS.PHP (1) - Intellisence
このエントリーは私が2005
年9
月24
日に書いた古いエントリーのリミックスです。
私は以前、Tom_G3XさんからVS.PHP
というツールの存在を聞きました。
私は、しばらくそれをテストして、そして、最も良い結論を得ました。
「これはPHP
において、最も優れた開発環境です」
私は、絶えず最も良いPHP IDE
を探し続けていました。
私はマイクロソフトが好きではありませんが、VisualStudio
を非常に評価しています。
私の人生はVisualStudio
とCodeWarrior
を切り離すことができません。VS.PHP
は、プログラマに幸福をもたらす効力を持つVisualStudio
のためのプラグインです。
インテリセンス
私は、.NET
のインテリセンスなどのサポート機能が欲しいと思っていました。しかしながら、私は様々なIDE
でそのような機能を得ることができませんでした。
私の望みには、Eclipse
もPeggy
も十分ではありません。しかし、VS.PHP
は本当のインテリセンスを実現します。それは本当にわくわくします!
function
foo($name,$description)
{
}
誰も、 $decription
のすべてをタイプしたいと思わないでしょう。あなたがEclipse3
かPeggy
を使用するなら、「単語補完」という機能はあなたを助けます。
しかしながら、VisualStudio
のインテリセンスはこのスコープで正確にあなたを助けます。また、インテリセンスは「コード規則の実践」を簡単にします。
プログラマは長い名前の変数に苦しむことはありません。したがって、変数の名前とプロパティの名前は常に適切です。
あなたはもうひとつ知るべきです。
それは、VS.PHP
のインテリセンスはC/C++
のインテリセンスより高速だということです。恐らくライブラリの量がこの現象に関係していると思われます。加えて、VS.PHP
のインテリセンスがCTRL+SPACE
なしで自動的に働くことも、その理由です。VS.PHP
のインテリセンスはPHP
にとどまりません。あなたはここでハイパワーを見ることができます。これを見終えたとき、あなたはプログラミングの興奮に耐えるのが不可能になるでしょう。
We need killer application for XCube_Service
現在、XOOPS Cube開発チームはXCube_Serviceのテスト版とその可能性をレビューしています。
私たちはサービスクライアントに関して既に基本的な抽象化レイヤーを開発しました。それは、ただアダプターであるので非常に簡単でした。
そして、私たちは、その開発でアダプターが複合条件下の抽象化レイヤーの単純な解決策であることを学びました。しかし、抽象的なクライアントは簡単な課題です(それには内側のサービスと外側のサービスの違いが全くありませんから)。
しかしながら、抽象的なサービスには、ウェブサービスとして働くための多くのパラメータがなければなりません。
内側のサービスであるなら、それはWSDLのために厳しい定義を必要としません。
しかし、ユーザがウェブサービスとしてそれを動かすとき、それが内側のサービスであるか否かに関係なく、そのサービスには厳しい定義がなければなりません。
これらの問題は以前、書かれたことがあります。
私たちは、用法をテストするためにサンプルモジュールを作らなければなりません。
私は、既に1つのモジュールと3つのハッキングファイルを開発して、これらのファイルを開発チームに送りました。
これらのファイルは、XCube_Serviceクラス群が正しく働くのをチェックすることができます。しかし、これらのファイルの機能は冗談みたいなものです(その冗談はXCube_Serviceに関して少しの可能性も示しません)。
多くのユーザが抽象的なサービスで遊べるようになるように、私たちはXCube_Serviceの特徴を使用するいくつかのおもしろいモジュールを計画しなければなりません。
XOOPS Cubeはウェブサービスの特徴を得るでしょう。
しかし、私はおもしろい体験をすべてのユーザにもたらすキラーモジュールを想像することができていません。モジュールが大差なしでクライアントとサービスを切り換えることができるなら、モジュールはP2Pのような特徴を得るかもしれませんが……
Exciting game! Carp vs Dragons
今日のCarp VS Dragons
のゲームは、接戦で非常におもしろかったです。
XOOPS Cube
チームのメンバーであるTom_G3Xさんは、、名古屋でのこれらのゲームに私を招待してくれていました。しかし、私の仕事が非常に忙しいので、私は今週末に休むことができませんでした。Tom_G3Xさんは、中日ドラゴンズのファンです。
カープには、最近1点差を争う多くのゲームがあります。
最近11
日間でそのような9
ゲームがありました。カープファンは、ゲームを見るために胃薬を飲む必要があるかもしれません。
今日のゲームは昨日の引き分けと同じくらい非常にエキサイティングでした。両方のチームが非常に良いです。
そして、カープは勝ちました。
トム_G3X
さんはこのゲームを見にスタジアムに行っていたので、彼はDragons
の敗北を見なければなりませんでした。
しかし、私は、ドラゴンズのファンにとっても、このゲームは非常におもしろかったのではないかと思います。このゲームを一緒に見たかった……
ところで、東京に住んでいるカープファンは、今月多くのゲームを見に行くことができます。
- 14日(金) 横浜
- 15日(土) 横浜
- 16日(日) 横浜
- 17日(祝) 神宮
- 18日(火) 神宮
- 19日(水) 神宮
- 21日(金) 神宮(オールスター)
- 25日(火) 東京ドーム
- 26日(水) 東京ドーム
- 27日(木) 東京ドーム
これらのイベント日をあなたのカレンダーに加えてください。