2016-09-13 1 views
0

어떻게 PHP 5.3을 사용하여 Akamai 캐시를 취소 하시겠습니까?
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/Authentication/Timestamp.php'; require_once 'src/Authentication/Nonce.php'; require_once 'src/Exception/ConfigException.php'; // 치명적 오류 : 클래스 'Akamai \ Open \ EdgeGrid \ Exception'이 (가) 22 행의 \ src \ Exception \ ConfigException.php에 없습니다. require_once 'src/Exception/SignerException/InvalidSignDataException.php'; // 치명적 오류 : 클래스 '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 빠른 제거 호출을 포함하도록 답변을 업데이트했습니다. –