Неопознанная ошибка: класс «WindowsAzure \ Common \ ServicesBuilder» не найден - MS Azure | PHP - PullRequest
0 голосов
/ 01 сентября 2018

Я создал файл composer.json в моей корневой папке, где находится мой файл index.php, со следующим кодом:

{
 "require": {
    "microsoft/windowsazure": "^0.5"
 }
}

и при загрузке composer.phar я установил его, используя:

php composer.phar install

Я пытаюсь создать таблицу и добавить к ней сущности в php. Я использую команду

use WindowsAzure\Common\ServicesBuilder;
$connectionString = 'DefaultEndpointsProtocol=https;AccountName=******;AccountKey=***/***************************/******************/**********************************==';
$tableRestProxy = ServicesBuilder::getInstance()->createTableService($connectionString);
try {
  // Create table.
  $tableRestProxy->createTable("mytable");
}
catch(ServiceException $e){
  $code = $e->getCode();
  $error_message = $e->getMessage();
  echo $code.": ".$error_message."<br />";
}

Когда я запускаю это на локальном хосте в Ubuntu, я получаю сообщение об ошибке:

Uncaught Error: Class 'WindowsAzure\Common\ServicesBuilder' not found in /home/my_folder/php-docs-hello-world-master/index.php:30

Если я добавлю

require_once 'vendor/autoload.php';

перед определением моей $ connectionString моя ошибка изменится на:

/index.php - Uncaught RuntimeException: Error creating resource: [message] fopen(https://eyesav.table.core.windows.net/Tables): failed to open stream: Unable to find the socket transport &quot;http&quot; - did you forget to enable it when you configured PHP?

Может кто-нибудь помочь мне разобраться в этой проблеме, если это связано с установкой моего композитора, или с моей строкой соединения, или с чем-то еще?

Заранее спасибо:)

1 Ответ

0 голосов
/ 03 сентября 2018

Может кто-нибудь помочь мне разобраться в этой проблеме, если это связано с установкой моего композитора, или с моей строкой соединения, или с чем-то еще?

Если я использую код, который вы упомянули, я также мог бы воспроизвести проблему, которую вы упомянули.

Пожалуйста, попробуйте использовать следующий код для создания таблицы клиента. У меня это работает.

 use MicrosoftAzure\Storage\Table\TableRestProxy;
 use MicrosoftAzure\Storage\Common\ServiceException;
 $tableClient = TableRestProxy::createTableService($connectionString);

Ниже приведен демонстрационный код Azure официальный документ .

<?php 
require_once "vendor/autoload.php";
use MicrosoftAzure\Storage\Table\TableRestProxy;
use MicrosoftAzure\Storage\Common\ServiceException;
$connectionString = 'DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxxxxx;';
$tableClient = TableRestProxy::createTableService($connectionString);
try {
    $tableClient->createTable("mytable");
}
catch(ServiceException $e){
  $code = $e->getCode();
  $error_message = $e->getMessage();
  echo $code.": ".$error_message."<br />";
}
...