PHPで静的クラス/メソッドを使用する場合、次のことを行う方法がわかりません。このコードは実行されませんが、何をしたいのかがわかります。
クラス アカウント { static public $emailer = Site_Emailer; 静的関数 add( $id ) { self::$emailer::send( '新しいアカウントが作成されました' ); } }
次に、単体テストで、このメソッドを呼び出すとメールが送信されることをテストします。
関数 testAccountsAddEmails() { アカウント::$email = Mock_Emailer; アカウント::add( 1 ); $this->assertTrue( count( Mock_Emailer::$sent ) === 1 ); }
私が直面している問題は、アカウントの静的変数が$emailer
クラスを保持するだけでなく、クラス名の文字列を保持してから使用することもできますcall_user_func()
が、それはやや面倒です。
私が抱えている問題が明確になることを願っています。さらにメモが必要な場合はお知らせください。
ありがとう