此 PECL 扩展未与 PHP 捆绑。使用此扩展,您将需要安装版本>=3.0的Varnish Cache,可在Varnish Cache主页上找到
Basic VarnishAdmin usage
The example illustrates a simple usage of the ban functionality
Example #1 Ban an URL
<?php
$args = array(
VARNISH_CONFIG_HOST => "::1",
VARNISH_CONFIG_PORT => 6082,
VARNISH_CONFIG_SECRET => "5174826b-8595-4958-aa7a-0609632ad7ca",
VARNISH_CONFIG_TIMEOUT => 300,
);
$va = new VarnishAdmin($args);
try {
if(!$va->connect()) {
throw new VarnishException("Connection failed\n");
}
} catch (VarnishException $e) {
echo $e->getMessage();
exit(3);
}
try {
if(!$va->auth()) {
throw new VarnishException("Auth failed\n");
}
} catch (VarnishException $e) {
echo $e->getMessage();
exit(3);
}
try {
$status = $va->ban('req.url ~ "^/$"');
if (VARNISH_STATUS_OK != $status) {
throw new VarnishException("Ban method returned $status status\n");
}
} catch (VarnishException $e) {
echo $e->getMessage();
exit(3);
}
exit(0);
?>
Basic VarnishStat usage
The example illustrates getting varnish statistic snapshot from shared memory
Example #1 Get statistic snapshot
<?php
$vs = new VarnishStat;
try {
$data = $vs->getSnapshot();
} catch (VarnishException $e) {
echo $e->getMessage();
exit(3);
}
exit(0);
?>
Basic VarnishLog usage
The example illustrates reading varnish log lines from shared memory
Example #1 Read varnish shared memory log
<?php
$vl = new VarnishLog;
while(1) {
$line = $vl->getLine();
printf("%s %d %s", VarnishLog::getTagName($line['tag'], $line['id'],
$line['data']);
}
exit(0);
?>
The VarnishAdmin class
(PECL varnish >= 0.3)
VarnishAdmin
{
/* 方法 */
public auth ( void ) : bool
public ban ( string $vcl_regex ) : int
public banUrl ( string $vcl_regex ) : int
public clearPanic ( void ) : int
public connect ( void ) : bool
public __construct ([ array $args ] )
public disconnect ( void ) : bool
public getPanic ( void ) : string
public getParams ( void ) : array
public isRunning ( void ) : bool
public setCompat ( int $compat ) : void
public setHost ( string $host ) : void
public setIdent ( string $ident ) : void
public setParam ( string $name , string|integer $value ) : int
public setPort ( int $port ) : void
public setSecret ( string $secret ) : void
public setTimeout ( int $timeout ) : void
public start ( void ) : int
public stop ( void ) : int
}
