[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 メーリングリストの案内