ホーム > ニュース > 開発・運用 > コア > XCube_Delegate????

XCube_Delegate????

6
onokazu
投稿者: onokazu | 投稿日時: 2007/9/3 14:07 | 公開日時: 2007/9/3 14:07 | 閲覧: 60254回
タグ: ,
http%3A%2F%2Fxoopscube.wiki.sourceforge.net%2FThe_Basic_Of_XCube_Delegate%253Bja

??????????XCube_Delegate??????????????????????????????????XOOPS Cube?????????????????

コメント(3)

新しいものから | 古いものから | ネスト表示 | RSS feed
Re: XCube_Delegateの使い方 
投稿者: onokazu | 投稿日時: 2007/9/3 14:14
onokazu
英訳募集中ということで、最初の方を少し:

英訳元

The Basic of XCube_Delegate


このドキュメントは日本語からスタートしているため、英訳ボランティアが必要です。

このドキュメントは、はじめて XCube_Delegate を使うプログラマ向けに、 XCube_Delegate の基本的な
使い方とコンベンショナルなコーディングについて
解説します。このドキュメントは対象となるプログラマが、

PHP4/PHP5
XOOPS Cube のプリロード機構
「委譲」「代理」のプログラムパターン

の3点を理解していることを前提に書かれています。

XOOPS Cube のデリゲートはいわゆる GoF パターンの「委譲」や「代理」を使って
いるわけではありませんが、ここでは「委譲」や「代理」の意義やメリットなどは解説
しませんので、ぜひ一度下記参考資料をご覧ください。(日本語)

委譲 - Wikipedia
デリゲート(プログラミング) - Wikipedia

英訳

The Basics of XCube_Delegate

This document explains the basic usage of the XCube_Delegate class and its features in detail. 
This document is written for programmers who at least have familiarity with the following knowledges: 

- PHP4/PHP5
- the 'Preload' feature of XOOPS Cube
- the 'Proxy' and 'Deleagete' design patterns

The delegation feature of XOOPS Cube does not actually conform to the 'Delegate' and/or 'Proxy' design patterns by GoF, 
but readers are encouraged to refer to the following documents to understand what these patterns are and how they 
actually work in applications. 

Delegate - Wikipedia, the free encyclopedia
Delegation (programming) - Wikipedia, the free encyclopedia
Re: XCube_Delegateの使い方 
投稿者: onokazu | 投稿日時: 2007/9/11 13:14
onokazu

いつの間にかドキュメントがほぼ出来上がっていますね。

Delegateというのは今までのXOOPSではなかった概念・機能なので、開発者側から見てXOOPS Cubeでのコーディングがとても楽しくなるような気がします。

ここで、開発者側からこのDelegate機構を利用しようとして少し思ったこと・要望を書きたいと思います。

1. Delegateの作成、登録はDelegate_Managerに任せてしまってもよいのでは?

現在のところ、例えばクラスAのデリゲート$mDelegate(デリゲート名:classA.Delegate)に委譲先となる関数を登録するにはクラスAのインスタンスにアクセス可能な場合は$mDelegateを通して行い、それ以外の場合はDelegate_Managerを通して行なうようになっていますが、これは後者の方法に統一してしまっても良いのでは?

そうすると、デリゲートの作成、登録は全てユニークなデリゲート名で行なうことになるので、少し見通しがよくなるのでは。Delegate_Managerインスタンスはrootを介してグローバルにアクセス可能なので、それを利用しないのも勿体無いかなと。。

2. 今のところ、各Delegateにcall()を行なわせていますが、これはDelegate_Managerに任せてしまっても良いのでは?

これは1が前提となりますが、Delegate_ManagerにてDelegateを作成した際にユニークな 名前がつくので、これを利用しない手はないかと思います。

$delegate_manager->call('デリゲート名', $obj);

これにより、委譲する側は委譲が必要な際にのみ上記のようなコードを実行するだけで、委譲する側のコンストラクタ部などで明示的にdelegateを生成・登録する必要もなくなるのではないでしょうか(シグネチャのチェック機構を使用しない場合)。

また、実際にコードのどの部分でどのようなイベント(デリゲート)が発生しているのかが見つけやすいのではないかと思います(あるイベントの発生元をつきつめるのに少し苦労したので^^;)。

Re: XCube_Delegateの使い方 
投稿者: tadashi | 投稿日時: 2008/3/22 2:16
tadashi

勉強会やるといいかもですね。やるとすると東京ですけど、興味ある方はいらっしゃるでしょうか、

    トラックバック(0)

    新しいものから | 古いものから | RSS feed

    投票(6)

    新しいものから | 古いものから | RSS feed
     
      To Top