[ Index ]
 

Code source de GeekLog 1.4.1

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/system/pear/PHP/ -> Compat.php (source)

   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[$singlefunc] = PHP_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[$singleconst] = PHP_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  ?>


Généré le : Wed Nov 21 12:27:40 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics