[PHP-users 14631]Re: PEAR::Authとメンバ関数

KOYAMA Tetsuji koyama @ hoge.org
2003年 4月 14日 (月) 15:28:10 JST


  小山です。

At Sat, 12 Apr 2003 21:42:07 +0900,
Yusuke HIRASAWA wrote:
> PEAR::Auth のサンプルのコードで・・・
> http://pear.php.net/manual/ja/packages.auth.auth.php
> Auth の3番目のパラメータ (サンプル中では myOutput ) に
> ログインフォームを表示する定義関数の名称を入れるようになっています.
> 
> 私は HTML を表示する部分に自作のクラスを利用しており,
> クラスのメンバ関数をこの 3 番目のパラメータに指定したいと考え,
> たとえば,HTML::show_html(login) などと指定してみたのですが,
> 予想通り (?) 動作しません.
> メンバ関数を利用する場合,どのように指定したらよいのやら困っております.

  Auth.php の該当部分を読めば分かりますが、Auth コンストラクタの第3引
数 $loginFunction は関数名を前提としており、クラスメソッドは渡せません。
内部で function_exits() を使ってチェックまでしています。

> そこで,
> 
> function myOutput() {
>     HTML::show_html(login);
> }
> 
> のようにワンクッションおいてやると一応は動くのですが,
> いまいちスマートな解決方法ではないので,
> 何か他によい方法がないかと思い相談させて頂きました.

  オブジェクト指向的には、やはり Auth を継承した独自クラスを作成するの
が良いのではないかと。drawLogin() を override すれば表示画面は自由自在
です。

  ただまぁ、平澤さんがおやりになったように、関数で wrapper を作るだけ
の方がシンプルで良いかもしれません。(笑)

-- 
	小山 哲志@ビート・クラフト
	koyama @ beatcraft.com
	koyama @ hoge.org


PHP-users メーリングリストの案内