Akamai快速清除使用PHP 5.3
如何清除使用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
有两种例外情况从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'));
是的,错误消失了。 下一步是什么? – modellita
@modellita我已经更新了答案,包括完整的CCUv3快速清除呼叫。 –
什么错误?请显示你的代码。 – Barmar
错误行标记为'//' 'require_once'src/Authentication.php'; require_once'src/Authentication/Timestamp.php'; require_once'src/Authentication/Nonce.php'; require_once'src/Exception/ConfigException.php'; require_once'src/Exception/ConfigException.php'; //致命错误:在'src \ Exception \ ConfigException.php中找不到'Class Akamai \ Open \ EdgeGrid \ Exception'行22 require_once'src/Exception/SignerException/InvalidSignDataException.php'; //致命错误:未在\ src \ Exception中找到类'Akamai \ Open \ EdgeGrid \ Exception \ SignerException'第22行上的异常\ SignerException \ InvalidSignDataException.php – modellita
将详细信息放在问题中。 – Barmar