stream_context_set_params не работает с оберткой ssh2.sftp

Я хочу использовать такие функции, как здесь . Пожалуйста, проверьте приведенный ниже код

function notify ( $notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max ) { echo "Runned \n"; }; $ctx = stream_context_create(); stream_set_params($ctx, array('notification' => 'notify')); $ssh_connection = ssh2_connect('myhost'); ssh2_auth_password($ssh_connection, 'login','pass'); $sftp_resource = ssh2_sftp($ssh_connection); $data = file_get_contents("ssh2.sftp://{$sftp_resource}/path/to/big/file", false, $ctx); 

Я ожидаю, что моя функция уведомления будет вызвана хотя бы один раз. Фактически, тот же код работает для ftp-оберток

 function notify ( $notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max ) { echo "Runned \n"; }; $ctx = stream_context_create(); stream_set_params($ctx, array('notification' => 'notify')); $scheme = 'ftp'; $data = file_get_contents("{scheme}://username:password@host:port/path/to/file", false, $ctx); 

И все отлично! Функция уведомления вызывается много раз. Я пытаюсь использовать sftp wrapper, как это

 $data = file_get_contents("ssh2.sftp://username:password@host:port/path/to/big/file", false, $ctx); 

И это тоже не работает. Есть идеи?

    Расширение ssh2 не поддерживает обратные вызовы notfication. Я не знаю, является ли это по дизайну или просто не реализовано, но в коде расширения отсутствует вызов таких функций, как:

    From (PHP-5.4.10) /ext/standard/ftp_fopen_wrapper.c, строка 573:

     php_stream_notify_progress_init(context, 0, file_size); 

    Обходной путь , который я еще не тестировал, может состоять в использовании ftps:// (FTP через ssl). Он должен соответствовать вашим требованиям безопасности и, как выглядит код, будет поддерживать уведомления как ftp. В деталях он использует тот же urlwrapper, что и ftp.

    Похоже, что недавняя фиксация чистой оболочки PHP SFTP-потока phpseclib добавляет поддержку уведомлений:

    https://github.com/phpseclib/phpseclib/commit/a47c1c39809a18b870b3812ce9ab84c7bd55efdd