Я пытаюсь подключиться к очереди служебной шины в Microsoft Azure с помощью PHP, используя следующий код, указанный в руководстве по Azure:
<?php
require_once 'vendor/autoload.php';
use MicrosoftAzure\Storage\Queue\QueueRestProxy;
use MicrosoftAzure\Storage\Common\Exceptions\ServiceException;
use MicrosoftAzure\Storage\Queue\Models\CreateMessageOptions;
$connectionString = "DefaultEndpointsProtocol=https;AccountName="name";AccountKey=key";
// Create queue REST proxy.
$queueClient = QueueRestProxy::createQueueService($connectionString);
try{
// Create message.
$builder = new ServicesBuilder();
$queueClient->createMessage("cmps297r1", "Hello World!");
}
catch(ServiceException $e){
// Handle exception based on error codes and messages.
// Error codes and messages are here:
// http://msdn.microsoft.com/library/azure/dd179446.aspx
$code = $e->getCode();
$error_message = $e->getMessage();
echo $code.": ".$error_message."<br />";
}
?>
Однако, когда я запускаю его, я получаю эту ошибку:
Исправляемая фатальная ошибка: аргумент 4, передаваемый в MicrosoftAzure \ Storage \ Common \ Internal \ ServiceRestProxy :: __ construct (), должен быть экземпляром MicrosoftAzure \ Storage \ Common \ Internal \ Serialization \ ISerializer, заданный массив, называемый в / Applications / XAMPP / xamppfiles /htdocs/297R/vendor/microsoft/azure-storage/src/Queue/QueueRestProxy.php в строке 110 и определяется в / Applications / XAMPP / xamppfiles / htdocs / 297R / vendor / microsoft / azure-storage / src / Common / Internal /ServiceRestProxy.php в строке 77
Код, который вы вставили, выглядит хорошо для меня (за исключением того, что вы не включили use
заявление для ServicesBuilder
класс, который вызвал быКласс не найден» ошибка).
И, как упомянул @Thuan Ng, приведенный выше код принадлежит очереди хранения Azure, а не очереди служебной шины. Вы должны обратиться к этой документации Как использовать очереди служебной шины с PHP если вы используете служебную шину Azure.
Других решений пока нет …