PhpRiot
Become Zend Certified

Prepare for the ZCE exam using our quizzes (web or iPad/iPhone). More info...


When you're ready get 7.5% off your exam voucher using voucher CJQNOV23 at the Zend Store

Multiple Time Servers

Not all time servers are always available to return their time. Servers may be unavailable during maintenance, for example. When the time cannot be requested from the time server, you will get an exception.

Zend_TimeSync is a simple solution that can handle multiple time servers and supports an automatic fallback mechanism. There are two supported ways; you can either specify an array of time servers when creating the instance, or you can add additional time servers to the instance using the addServer() method.

<?php
$server 
= new Zend_TimeSync(array('0.pool.ntp.org',
                                  
'1.pool.ntp.org',
                                  
'2.pool.ntp.org'));
$server->addServer('3.pool.ntp.org');

print 
$server->getDate()->getIso();

There is no limit to the number of time servers you can add. When a time server can not be reached, Zend_TimeSync will fallback and try to connect to the next time server.

When you supply more than one time server- which is considered a best practice for Zend_TimeSync- you should name each server. You can name your servers with array keys, with the second parameter at instantiation, or with the second parameter when adding another time server.

<?php
$server 
= new Zend_TimeSync(array('generic'  => '0.pool.ntp.org',
                                  
'fallback' => '1.pool.ntp.org',
                                  
'reserve'  => '2.pool.ntp.org'));
$server->addServer('3.pool.ntp.org''additional');

print 
$server->getDate()->getIso();

Naming the time servers allows you to request a specific time server as we will see later in this chapter.

Zend Framework