PHP_Compat
[ class tree: PHP_Compat ] [ index: PHP_Compat ] [ all elements ]

Source for file Compat.php

Documentation is available at Compat.php

  1. <?php
  2. // +----------------------------------------------------------------------+
  3. // | PHP Version 4                                                        |
  4. // +----------------------------------------------------------------------+
  5. // | Copyright (c) 1997-2004 The PHP Group                                |
  6. // +----------------------------------------------------------------------+
  7. // | This source file is subject to version 3.0 of the PHP license,       |
  8. // | that is bundled with this package in the file LICENSE, and is        |
  9. // | available at through the world-wide-web at                           |
  10. // | http://www.php.net/license/3_0.txt.                                  |
  11. // | If you did not receive a copy of the PHP license and are unable to   |
  12. // | obtain it through the world-wide-web, please send a note to          |
  13. // | license@php.net so we can mail you a copy immediately.               |
  14. // +----------------------------------------------------------------------+
  15. // | Authors: Aidan Lister <aidan@php.net>                                |
  16. // +----------------------------------------------------------------------+
  17. //
  18. // $Id: Compat.php,v 1.19 2005/05/10 12:05:36 aidan Exp $
  19.  
  20.  
  21. /**
  22.  * Provides missing functionality in the form of constants and functions
  23.  *   for older versions of PHP
  24.  *
  25.  * Optionally, you may simply include the file.
  26.  *   e.g. require_once 'PHP/Compat/Function/scandir.php';
  27.  *
  28.  * @category    PHP
  29.  * @package     PHP_Compat
  30.  * @version     $Revision: 1.19 $
  31.  * @author      Aidan Lister <aidan@php.net>
  32.  * @static
  33.  */
  34. class PHP_Compat
  35. {
  36.     /**
  37.      * Load a function, or array of functions
  38.      *
  39.      * @param   string|array   $function The function or functions to load
  40.      * @return  bool|array     TRUE if loaded, FALSE if not
  41.      */
  42.     function loadFunction($function)
  43.     {
  44.         // Recursiveness
  45.         if (is_array($function)) {
  46.             $res = array();
  47.             foreach ($function as $singlefunc{
  48.                 $res[$singlefuncPHP_Compat::loadFunction($singlefunc);
  49.             }
  50.  
  51.             return $res;
  52.         }
  53.  
  54.         // Load function
  55.         if (!function_exists($function)) {
  56.             $file sprintf('PHP/Compat/Function/%s.php'$function);
  57.             if ((@include_once $file!== false{
  58.                 return true;
  59.             }
  60.         }
  61.  
  62.         return false;
  63.     }
  64.  
  65.  
  66.     /**
  67.      * Load a constant, or array of constants
  68.      *
  69.      * @param   string|array   $constant The constant or constants to load
  70.      * @return  bool|array     TRUE if loaded, FALSE if not
  71.      */
  72.     function loadConstant($constant)
  73.     {
  74.         // Recursiveness
  75.         if (is_array($constant)) {
  76.             $res = array();
  77.             foreach ($constant as $singleconst{
  78.                 $res[$singleconstPHP_Compat::loadConstant($singleconst);
  79.             }
  80.  
  81.             return $res;
  82.         }
  83.  
  84.         // Load constant
  85.         $file sprintf('PHP/Compat/Constant/%s.php'$constant);
  86.         if ((@include_once $file!== false{
  87.             return true;
  88.         }
  89.  
  90.         return false;
  91.     }
  92.  
  93.  
  94.     /**
  95.      * Load components for a PHP version
  96.      *
  97.      * @param   string      $version    PHP Version to load
  98.      * @return  array       An associative array of component names loaded
  99.      */
  100.     function loadVersion($version = null)
  101.     {
  102.         // Include list of components
  103.         require 'PHP/Compat/Components.php';
  104.  
  105.         // Include version_compare to work with older versions
  106.         PHP_Compat::loadFunction('version_compare');
  107.  
  108.         // Init
  109.         $phpversion phpversion();
  110.         $methods = array(
  111.             'function' => 'loadFunction',
  112.             'constant' => 'loadConstant');
  113.         $res = array();
  114.  
  115.         // Iterate each component
  116.         foreach ($components as $type => $slice{
  117.             foreach ($slice as $component => $compversion{
  118.                 if (($version === null &&
  119.                         1 === version_compare($compversion$phpversion)) ||    // C > PHP
  120.                        (0 === version_compare($compversion$version||        // C = S
  121.                         1 === version_compare($compversion$phpversion))) {    // C > PHP
  122.                     
  123.                     $res[$type][$component=
  124.                         call_user_func(array('PHP_Compat'$methods[$type])$component);
  125.                 }
  126.             }
  127.         }
  128.  
  129.         return $res;
  130.     }
  131. }
  132.  
  133. ?>

Documentation generated on Mon, 11 Mar 2019 14:20:35 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.