Yii 2 – вызов метода методом объекта

У меня такой класс:

use \TelegramBot\Api\Client; use yii\web\Controller; class ProducerController extends Controller { public $client; public function init() { parent::init(); $this->enableCsrfValidation = false; $this->client = new Client( Yii::$app->bot->apiToken ); } public function actionIndex() { $this->client->command( 'ping' , array($this, 'ping' )); $this->client->run(); } public function ping( $msg ) { $this->client->sendMessage( $msg->getChat() ->getId() , 'pong!' ); } } 

В настоящее время у меня возникают проблемы с вызовом обратного вызова в этом разделе:

 $this->client->command( 'ping' , array($this, 'ping' )); 

Это дает мне ошибку, что «вторым параметром должен быть массив экземпляра закрытия, данный» .

Я пробовал что-то вроде создания статического метода ping и называл его self::ping и некоторые другие способы безрезультатно.

Кроме того, существует параметр $msg который не может быть передан методу с использованием моего текущего подхода.

Таким образом, он отлично работает с анонимной функцией (см. Ниже фрагмент):

 $client = $this->client; $this->client->command( 'ping' , function($msg) use($client){ $client->sendMessage( $msg->getChat() ->getId() , 'pong!' ); }); 

Он работает так, как ожидалось, но мне нужно реализовать его как метод. Проблема в том, что я не могу понять, как это сделать.

Как я могу это достичь?