API Documentation

Zend/Wildfire/Channel/HttpHeaders.php

Show: inherited
Table of Contents

Zend Framework

LICENSE

This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to license@zend.com so we can send you a copy immediately.

Category
Zend  
Copyright
Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  
Package
Zend_Wildfire  
Subpackage
Channel  
Version
$Id: HttpHeaders.php 24594 2012-01-05 21:27:01Z matthew $  

\Zend_Wildfire_Channel_HttpHeaders

Package: Zend\Wildfire\Channel

Implements communication via HTTP request and response headers for Wildfire Protocols.

Implements
\Zend_Wildfire_Channel_Interface
Parent(s)
\Zend_Controller_Plugin_Abstract
Category
Zend  
Copyright
Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  

Properties

Propertyprotectedinteger  $_controllerPluginStackIndex= '999'
static

The index of the plugin in the controller dispatch loop plugin stack

Default value999Details
Type
integer
Propertyprotectedstring  $_headerPrefix= ''X-WF-''
static

The string to be used to prefix the headers.

Default value'X-WF-'Details
Type
string
Propertyprotected\Zend_Wildfire_Channel_HttpHeaders  $_instance= 'null'
static

Singleton instance

Default valuenullDetails
Type
\Zend_Wildfire_Channel_HttpHeaders
Propertyprotectedarray  $_protocols= 'null'

The protocol instances for this channel

Default valuenullDetails
Type
array

Methods

methodprotected_initProtocol( string $uri ) : object

Initialize a new protocol

Parameters
Name Type Description
$uri string

The URI for the protocol to be initialized

Returns
Type Description
object Returns the new initialized protocol instance
Throws
Exception Description
\Zend_Wildfire_Exception
methodprotected_registerControllerPlugin( ) : void

Register this object as a controller plugin.

methodpublicdestroyInstance( ) : void
static

Destroys the singleton instance

Primarily used for testing.

methodpublicdispatchLoopShutdown( ) : void

Flush messages to headers as late as possible but before headers have been sent.

methodpublicflush( ) : boolean

Flush all data from all protocols and send all data to response headers.

Returns
Type Description
boolean Returns TRUE if data was flushed
methodpublicgetInstance( bool $skipCreate = false ) : \Zend_Wildfire_Channel_HttpHeaders
static

Get or create singleton instance

Parameters
Name Type Description
$skipCreate bool

True if an instance should not be created

Returns
Type Description
\Zend_Wildfire_Channel_HttpHeaders
methodpublicgetProtocol( string $uri ) : object

Get the instance of a give protocol for this channel

Parameters
Name Type Description
$uri string

The URI for the protocol

Returns
Type Description
object Returns the protocol instance for the diven URI
methodpublicgetRequest( ) : \Zend_Controller_Request_Abstract

Get the request object

Returns
Type Description
\Zend_Controller_Request_Abstract
Throws
Exception Description
\Zend_Wildfire_Exception
methodpublicgetResponse( ) : \Zend_Controller_Response_Abstract

Get the response object

Returns
Type Description
\Zend_Controller_Response_Abstract
Throws
Exception Description
\Zend_Wildfire_Exception
methodpublicinit( string $class = null ) : \Zend_Wildfire_Channel_HttpHeaders
static

Initialize singleton instance.

Parameters
Name Type Description
$class string

OPTIONAL Subclass of Zend_Wildfire_Channel_HttpHeaders

Returns
Type Description
\Zend_Wildfire_Channel_HttpHeaders Returns the singleton Zend_Wildfire_Channel_HttpHeaders instance
Throws
Exception Description
\Zend_Wildfire_Exception
methodpublicisReady( boolean $forceCheckRequest = false ) : boolean

Determine if channel is ready.

The channel is ready as long as the request and response objects are initialized, can send headers and the FirePHP header exists in the User-Agent.

If the header does not exist in the User-Agent, no appropriate client is making this request and the messages should not be sent.

A timing issue arises when messages are logged before the request/response objects are initialized. In this case we do not yet know if the client will be able to accept the messages. If we consequently indicate that the channel is not ready, these messages will be dropped which is in most cases not the intended behaviour. The intent is to send them at the end of the request when the request/response objects will be available for sure.

If the request/response objects are not yet initialized we assume if messages are logged, the client will be able to receive them. As soon as the request/response objects are availoable and a message is logged this assumption is challenged. If the client cannot accept the messages any further messages are dropped and messages sent prior are kept but discarded when the channel is finally flushed at the end of the request.

When the channel is flushed the $forceCheckRequest option is used to force a check of the request/response objects. This is the last verification to ensure messages are only sent when the client can accept them.

Parameters
Name Type Description
$forceCheckRequest boolean

OPTIONAL Set to TRUE if the request must be checked

Returns
Type Description
boolean Returns TRUE if channel is ready.
methodpublicsetControllerPluginStackIndex( integer $index ) : integer
static

Set the index of the plugin in the controller dispatch loop plugin stack

Parameters
Name Type Description
$index integer

The index of the plugin in the stack

Returns
Type Description
integer The previous index.
Documentation was generated by DocBlox 0.15.1.