_proxyTicket)) throw new CAS_OutOfSequenceException('Already initialized, cannot change the proxy ticket.'); $this->_proxyTicket = $proxyTicket; } /** * Answer the proxy ticket to be used when making requests. * * @return string * @throws CAS_OutOfSequenceException If called before a proxy ticket has already been initialized/set. */ protected function getProxyTicket () { if (empty($this->_proxyTicket)) throw new CAS_OutOfSequenceException('No proxy ticket yet. Call $this->initializeProxyTicket() to aquire the proxy ticket.'); return $this->_proxyTicket; } /** * @var CAS_Client $_casClient; */ private $_casClient; /** * Use a particular CAS_Client->initializeProxiedService() rather than the * static phpCAS::initializeProxiedService(). * * This method should not be called in standard operation, but is needed for unit * testing. * * @param CAS_Client $casClient * @return void * @throws CAS_OutOfSequenceException If called after a proxy ticket has already been initialized/set. */ public function setCasClient (CAS_Client $casClient) { if (!empty($this->_proxyTicket)) throw new CAS_OutOfSequenceException('Already initialized, cannot change the CAS_Client.'); $this->_casClient = $casClient; } /** * Fetch our proxy ticket. * * Descendent classes should call this method once their service URL is available * to initialize their proxy ticket. * * @return void * @throws CAS_OutOfSequenceException If called after a proxy ticket has already been initialized. */ protected function initializeProxyTicket() { if (!empty($this->_proxyTicket)) throw new CAS_OutOfSequenceException('Already initialized, cannot initialize again.'); // Allow usage of a particular CAS_Client for unit testing. if (empty($this->_casClient)) phpCAS::initializeProxiedService($this); else $this->_casClient->initializeProxiedService($this); } }