此 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 }