cpanel — PHP Cpanel_PublicAPI Создать учетную запись, передав неверные переменные

Я сожалею, если этот запрос находится не в том районе.

Я учусь использовать PHP и CPanel API. У меня есть следующий код, и он дает мне ошибку стека, потому что мне не хватает чего-то, казалось бы, простого

    $domain = array('username' => 'bobbie', 'domain' => 'bobbie.com', 'pass' => 'bobbie123');
$acct = $cp->whm_api('createacct', $domain);
echo "WHM Create: {$acct->createacct}\n";

Я знаю, что правильно подключаюсь к WHM, потому что мой код до этого правильно выводит версию WHM. Приведенный выше код дает мне сообщение о том, что createacct необходимо передать массив в качестве первого параметра:

WHM Version: 11.54.0.21
PHP Fatal error:  Uncaught exception 'Exception' with message 'createacct requires that first parameter passed to it is an array' in /root/whmrm/Cpanel/Service/XmlapiClientClass.php:146
Stack trace:
#0 [internal function]: Cpanel_Service_XmlapiClientClass->createacct('bobbie', 'bobbie.com', 'bobbie123')
#1 /root/whmrm/Cpanel/Service/WHM.php(195): call_user_func_array(Array, Array)
#2 [internal function]: Cpanel_Service_WHM->__call('createacct', Array)
#3 [internal function]: Cpanel_Service_WHM->createacct('bobbie', 'bobbie.com', 'bobbie123')
#4 /root/whmrm/Cpanel/PublicAPI.php(525): call_user_func_array(Array, Array)
#5 /root/whmrm/create_sites_on_server.php(68): Cpanel_PublicAPI->__call('whm_api', Array)
#6 /root/whmrm/create_sites_on_server.php(68): Cpanel_PublicAPI->whm_api('createacct', Array)
#7 {main}
thrown in /root/whmrm/Cpanel/Service/XmlapiClientClass.php on line 146

Строка 3 вывода показывает, что я не отправляю данные должным образом. Любая помощь будет оценена. Я погуглил, и большинство результатов дают мне информацию о xml_api и о том, как его использовать. Спасибо за вашу помощь.

3

Решение

Глядя на источник для PublicAPI класс, кажется, что если массив задан в качестве параметров, он только вызывает результирующую функцию, передавая первый элемент из массива (источник).

Мне удалось создать учетную запись с помощью этого кода:

$cp = Cpanel_PublicAPI::getInstance($config);

$whm = Cpanel_PublicAPI::factory('whm');

$domain = array(
'domain'   => 'mydomain.com',
'username' => 'drewt2',
'password' => 'myp4ssw0rd!'
);
$response = $whm->createacct($domain);

Вы можете увидеть функции и параметры здесь: Cpanel_Service_XmlapiClientClass.

К сожалению, код не обновлялся в течение 5 лет, и Примеры это не так полезно, так что вам, вероятно, придется просмотреть код, чтобы выяснить, что вы хотите делать.

2

Другие решения

Других решений пока нет …