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()が、それはやや面倒です。
私が抱えている問題が明確になることを願っています。さらにメモが必要な場合はお知らせください。
ありがとう