2016-09-13 2 views
0

Как очистить кеш Akamai с помощью php 5.3?
Код, указанный в Akamai Github для php 5.6+, работает. Но код, представленный на странице Akamai Github для php 5.3, дает ошибку.Быстрая чистка Akamai с использованием php 5.3

Ошибка линия, помеченная как «//»:

require_once 'src/Authentication.php';
require_once 'src/Authentication/Timestamp.php';
require_once 'src/Authentication/Nonce.php';
require_once 'src/Exception/ConfigException.php';
//Fatal error: Class 'Akamai\Open\EdgeGrid\Exception' not found in \src\Exception\ConfigException.php on line 22 require_once 'src/Exception/SignerException/InvalidSignDataException.php'‌​;
//Fatal error: Class 'Akamai\Open\EdgeGrid\Exception\SignerException' not found in \src\Exception\SignerException\InvalidSignDataException.php on line 22

+0

какая ошибка? Пожалуйста, покажите свой код. – Barmar

+0

Линии ошибок отмечены как «//» 'require_once 'src/Authentication.php'; require_once 'src/Аутентификация/Timestamp.php'; require_once 'src/Аутентификация/Nonce.php'; require_once 'src/Exception/ConfigException.php'; // Неустранимая ошибка: Class 'Akamai \ Open \ EdgeGrid \ Exception' не найден в \ src \ Exception \ ConfigException.php в строке 22 require_once 'src/Exception/SignerException/InvalidSignDataException.php'; // Неустранимая ошибка: Class 'Akamai \ Open \ EdgeGrid \ Exception \ SignerException' не найден в \ src \ Exception \ SignerException \ InvalidSignDataException.php в строке 22 – modellita

+1

Поместите детали в вопрос. – Barmar

ответ

0

Есть два исключения отсутствует из require блока:

require_once 'src/Exception.php'; 
require_once 'src/Exception/SignerException.php'; 

Добавления они должны решить проблему.

Полный код блока для очистки нужно использовать:

$auth = \Akamai\Open\EdgeGrid\Authentication::createFromEdgeRcFile('ccuv3', './.edgerc'); 
$auth->setHttpMethod('POST'); 
$auth->setPath('/ccu/v3/invalidate/url'); 

$body = json_encode(array(
    'hostname' => 'example.org', 
    'objects' => array('/path/to/object', '/path/to/other/object') 
)); 

$auth->setBody($body); 

$context = array(
    'http' => array(
     'header' => array(
      'Authorization: ' . $auth->createAuthHeader(), 
      'Content-Type: application/json', 
      'Content-Length: ' . strlen($body), 
     ), 
     'method' => 'POST', 
     'content' => $body 
    ) 
); 

$context = stream_context_create($context); 

$response = json_decode(file_get_contents('https://' . $auth->getHost() . $auth->getPath(), null, $context)); 

еще лучше было бы, чтобы обернуть это в функции:

function fastPurge($hostname, array $objects) 
{ 
    $body = json_encode(array(
     'hostname' => $hostname, 
     'objects' => $objects 
    )); 

    $auth = \Akamai\Open\EdgeGrid\Authentication::createFromEdgeRcFile('ccuv3', './.edgerc'); 
    $auth->setHttpMethod('POST'); 
    $auth->setPath('/ccu/v3/invalidate/url'); 
    $auth->setBody($body); 

    $context = array(
     'http' => array(
      'header' => array(
       'Authorization: ' . $auth->createAuthHeader(), 
       'Content-Type: application/json', 
       'Content-Length: ' . strlen($body), 
      ), 
      'method' => 'POST', 
      'content' => $body 
     ) 
    ); 

    $context = stream_context_create($context); 

    $response = json_decode(file_get_contents('https://' . $auth->getHost() . $auth->getPath(), null, $context)); 
} 

// Call the fastPurge function 
fastPurge('example.org', array('/path/to/object', '/path/to/other/object')); 
+0

Да, ошибка исчезла. Что дальше? – modellita

+0

@modellita Я обновил ответ, чтобы включить полный вызов CCUv3 fast purge. –

Смежные вопросы