Я использую Laravel 5.3, и у меня есть эта строка под функцией sched() в App \ Console \ Kernel.php.Ошибка при планировании планировщика Laravel при выполнении xml_decode()
$schedule->call('App\Http\Controllers\[email protected]')->everyMinute();
функция является своим родом утомительной, но тэк его: получить метку времени последней записи, найденной в базе данных, создайте новый запрос XML-RPC с просьбой о новых записях с датой_начал из «последних найденной Отметки времени в БД », декодировать результат XML-RPC и вставить в БД.
public static function fetchXmlRpcResult($user, $password, $account_id, $date)
{
$client = new Client('https://example.com/xmlapi/');
$client->setSSLVerifyPeer(false);
$client->setSSLVerifyHost(2);
$client->setCredentials($user, $password, CURLAUTH_DIGEST);
$parameters = [removed]
$request = new Request('getAccountData', $parameters);
$response = $client->send($request);
// removing the 401 HTTP Unauthorized header
$xml = (substr($response->raw_data, strpos($response->raw_data, "\r\n\r\n")+4));
// removing the OK HTTP header
$xml2 = (substr($xml, strpos($xml, "\r\n\r\n")+4));
$accountCDRs = xmlrpc_decode($xml2);
return $accountInfo;
}
Когда я бегу php artisan schedule:run
в консоли, я пробужден с этой ошибкой:
Running scheduled command: App\Http\Controllers\[email protected]
XML-RPC: PhpXmlRpc\Helper\Http::parseResponseHeaders: HTTP error, got response: HTTP/1.1 401 Unauthorized
[Symfony\Component\Debug\Exception\FatalThrowableError]
Call to undefined function App\Helpers\xmlrpc_decode()
Контроллер использует файл в App \ Helpers \ XmlHandler.php и в этом файле я использую следующие классы:
use PhpXmlRpc\Value;
use PhpXmlRpc\Request;
use PhpXmlRpc\Client;
Может ли HTTP-ответ выбросить его? Я попробовал выполнить ту же функцию через браузер (ака, добавив функцию в route.php под http://example.com/update), и это сработало отлично.
Я просто должен был установить php7.0-XMLRPC пакета (Ubuntu) и включить его в php.ini PHP CLI. – Spacemudd