sendAll() public method

A shortcut for sendHeaders() and echo getContent() You must call this before headers are sent and it probably cannot be used in conjunction with zlib output buffering / mod_gzip. Errors are not handled purposefully.
public sendAll ( )
Ejemplo n.º 1
0
 /**
  * Gzip (encode) the HTTP response and write to output.
  * @param string $strBody        The content that should be in the response.
  * @param string $strContentType The MIME type of the content.
  */
 public static function send($strBody, $strContentType = "text/html")
 {
     $objEncoder = new \HTTP_Encoder(array("content" => $strBody, "type" => $strContentType));
     $objEncoder->encode();
     $objEncoder->sendAll();
     exit;
 }
Ejemplo n.º 2
0
 public static function render($arrFilter)
 {
     $dtLastModified = 0;
     //*** Load sources from sources directory.
     if (is_dir($GLOBALS["_PATHS"]['css'])) {
         //*** Directory exists.
         foreach ($arrFilter as $strFilter) {
             $strFile = $GLOBALS["_PATHS"]['css'] . "{$strFilter}.css";
             $dtLastModified = self::getLastModified($strFile, $dtLastModified);
             //*** Auto check custom files.
             if (strpos($strFilter, "-custom") === false) {
                 $strFile = $GLOBALS["_PATHS"]['css'] . "{$strFilter}-custom.css";
                 $dtLastModified = self::getLastModified($strFile, $dtLastModified);
             }
         }
     }
     //*** Check if we can send a "Not Modified" header.
     \HTTP_ConditionalGet::check($dtLastModified, true, array("maxAge" => 1200000));
     //*** Modified. Get contents.
     $strOutput = self::minify($arrFilter);
     //*** Gzip the CSS.
     $objEncoder = new \HTTP_Encoder(array("content" => $strOutput, "type" => "text/css"));
     $objEncoder->encode();
     $objEncoder->sendAll();
 }
Ejemplo n.º 3
0
 public static function render($arrFilter)
 {
     $dtLastModified = 0;
     //*** Load sources from sources directory.
     if (is_dir($GLOBALS["_PATHS"]['js'])) {
         //*** Directory exists.
         foreach ($arrFilter as $strFilter) {
             $strFile = $GLOBALS["_PATHS"]['js'] . $strFilter . ".js";
             if (is_file($strFile)) {
                 $lngLastModified = filemtime($strFile);
                 if (empty($dtLastModified) || $lngLastModified > $dtLastModified) {
                     $dtLastModified = $lngLastModified;
                 }
             }
         }
     }
     //*** Check if we can send a "Not Modified" header.
     \HTTP_ConditionalGet::check($dtLastModified, true, array("maxAge" => 1200000));
     //*** Modified. Get contents.
     $strOutput = self::minify($arrFilter);
     //*** Gzip the Javascript.
     $objEncoder = new \HTTP_Encoder(array("content" => $strOutput, "type" => "text/javascript"));
     $objEncoder->encode();
     $objEncoder->sendAll();
 }
Ejemplo n.º 4
0
 /**
  * Encode and send appropriate headers and content
  *
  * This is a convenience method for common use of the class
  * 
  * @param string $content
  * 
  * @param int $compressionLevel given to zlib functions. If not given, the
  * class default will be used.
  * 
  * @return bool success true if the content was actually compressed
  */
 public static function output($content, $compressionLevel = null)
 {
     if (null === $compressionLevel) {
         $compressionLevel = self::$compressionLevel;
     }
     $he = new HTTP_Encoder(array('content' => $content));
     $ret = $he->encode($compressionLevel);
     $he->sendAll();
     return $ret;
 }
Ejemplo n.º 5
0
<?php

/**
 * AJAX checks for zlib.output_compression
 * 
 * @package Minify
 */
$_oc = ini_get('zlib.output_compression');
// allow access only if builder is enabled
require __DIR__ . '/../config.php';
if (!$min_enableBuilder) {
    header('Location: /');
    exit;
}
if (isset($_GET['hello'])) {
    // echo 'World!'
    // try to prevent double encoding (may not have an effect)
    ini_set('zlib.output_compression', '0');
    require $min_libPath . '/HTTP/Encoder.php';
    HTTP_Encoder::$encodeToIe6 = true;
    // just in case
    $he = new HTTP_Encoder(array('content' => 'World!', 'method' => 'deflate'));
    $he->encode();
    $he->sendAll();
} else {
    // echo status "0" or "1"
    header('Content-Type: text/plain');
    echo (int) $_oc;
}
 /**
  * Echoes the Javascript if not cached.
  *
  * Echoes the javascript with the correct content.
  * Since the content is dinamic, i use the hash function.
  *
  * @param string $javascript
  *
  * @return void
  */
 private function _echo_javascript($javascript)
 {
     $conditional_get = new HTTP_ConditionalGet(array('contentHash' => md5($javascript)));
     $conditional_get->sendHeaders();
     if (!$conditional_get->cacheIsValid) {
         $http_encoder = new HTTP_Encoder(array('content' => $javascript, 'type' => 'text/javascript'));
         $compression_level = null;
         if ($this->_registry->get('model.settings')->get('disable_gzip_compression')) {
             // set the compression level to 0 to disable it.
             $compression_level = 0;
         }
         $http_encoder->encode($compression_level);
         $http_encoder->sendAll();
     }
     Ai1ec_Http_Response_Helper::stop(0);
 }