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

Source for file common.inc.php

Documentation is available at common.inc.php

  1. <?php
  2. /**
  3.  * Common information needed by all portions of the application
  4.  *
  5.  * phpDocumentor :: automatic documentation generator
  6.  * 
  7.  * PHP versions 4 and 5
  8.  *
  9.  * Copyright (c) 2001-2006 Gregory Beaver
  10.  * 
  11.  * LICENSE:
  12.  * 
  13.  * This library is free software; you can redistribute it
  14.  * and/or modify it under the terms of the GNU Lesser General
  15.  * Public License as published by the Free Software Foundation;
  16.  * either version 2.1 of the License, or (at your option) any
  17.  * later version.
  18.  * 
  19.  * This library is distributed in the hope that it will be useful,
  20.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  21.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  22.  * Lesser General Public License for more details.
  23.  * 
  24.  * You should have received a copy of the GNU Lesser General Public
  25.  * License along with this library; if not, write to the Free Software
  26.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  27.  *
  28.  * @package    phpDocumentor
  29.  * @author     Greg Beaver <[email protected]>
  30.  * @copyright  2001-2006 Gregory Beaver
  31.  * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
  32.  * @version    CVS: $Id: common.inc.php,v 1.7 2006/10/18 18:52:12 cellog Exp $
  33.  * @filesource
  34.  * @link       http://www.phpdoc.org
  35.  * @link       http://pear.php.net/PhpDocumentor
  36.  * @see        parserDocBlock, parserInclude, parserPage, parserClass
  37.  * @see        parserDefine, parserFunction, parserMethod, parserVar
  38.  * @since      1.0rc1
  39.  */
  40. /** phpDocumentor version */
  41. if ('@PEAR-DIR@' != '@'.'PEAR-DIR@')
  42. {
  43.     define("PHPDOCUMENTOR_VER","@VER@");
  44. else {
  45.     define("PHPDOCUMENTOR_VER","1.3.1");
  46. }
  47. /** phpDocumentor version */
  48. define("PHPDOCUMENTOR_WEBSITE","http://www.phpdoc.org");
  49. define('SMART_PATH_DELIMITER'DIRECTORY_SEPARATOR )// set the correct path delimiter
  50. define('tokenizer_ext'extension_loaded('tokenizer'&& version_compare(phpversion(),"4.3.0",">="));
  51. // we just replace all the \ with / so that we can just operate on /
  52. define('PATH_DELIMITER''/' )// set the correct path delimiter
  53. define('PHPDOCUMENTOR_WINDOWS',substr(PHP_OS03== 'WIN');
  54. define('_IN_PHP5'phpversion(== '5.0.0RC1-dev' || phpversion(== '5.0.0RC2-dev' ||
  55.     version_compare(phpversion()'5.0.0''ge'));
  56. if ('@VER@' != '@'.'VER@')
  57. {
  58.     if (_IN_PHP5{
  59.         require_once 'PhpDocumentor/phpDocumentor/clone5.inc.php';
  60.     else {
  61.         require_once 'PhpDocumentor/phpDocumentor/clone.inc.php';
  62.     }
  63. else {
  64.     if (_IN_PHP5{
  65.         require_once dirname(__FILE__'/clone5.inc.php';
  66.     else {
  67.         require_once dirname(__FILE__'/clone.inc.php';
  68.     }
  69. }
  70. if (isset($_SERVER['argv'])) {
  71.     $argv $_SERVER['argv'];
  72.     $argc $_SERVER['argc'];
  73. }
  74.  
  75. /** used in phpdoc.php and new_phpdoc.php */
  76. function phpDocumentor_ConfigFileList($directory)
  77. {
  78.     $ret array();
  79.     if (@is_dir($directory))
  80.     {
  81.         $ret array();
  82.         $d @dir($directory)// thanks to Jason E Sweat ([email protected]) for fix
  83.         while($d && $entry=$d->read())
  84.         {
  85.             $getentry false;
  86.             if (strcmp($entry,"."!= && strcmp($entry,".."!= 0)
  87.             {
  88.                 if (substr($entry,0,1!= "."$getentry true;
  89.             }
  90.             if ($getentry == true)
  91.             {
  92.                 if (strpos($entry,'.ini'))
  93.                 if (is_file($directory PATH_DELIMITER $entry))
  94.                 {
  95.                     $ret[str_replace('.ini','',$entry);
  96.                 }
  97.             }
  98.         }
  99.         if ($d$d->close();
  100.     else
  101.     {
  102.     }
  103.     return $ret;
  104. }
  105.  
  106.  
  107. /**
  108.  * Parse an .ini file
  109.  * 
  110.  * Works like {@link parse_ini_file}, except it will take a section like:
  111.  *
  112.  * <pre>
  113.  * [MYVAR]
  114.  * value1
  115.  * value2
  116.  * value3
  117.  * </pre>
  118.  *
  119.  * and return an associative array(MYVAR => array(value1, value2, value3))
  120.  * @return array 
  121.  * @param string full path to the ini file
  122.  * @param boolean add an associative index for each section [in brackets]
  123.  */
  124. function phpDocumentor_parse_ini_file($filename$process_sections false)
  125. {
  126.     $ini_array array();
  127.     $sec_name "";
  128.     $lines @file($filename);
  129.     if!$linesreturn $lines;
  130.     foreach($lines as $line)
  131.     {
  132.         // code by Greg Beaver, ignore comments
  133.         if ($line[0== ';'continue;
  134.         $line trim($line);
  135.         
  136.         if($line == "")
  137.         {
  138.             continue;
  139.         }
  140.         if($line[0== "[" && $line[strlen($line1== "]")
  141.         {
  142.             $sec_name substr($line1strlen($line2);
  143.         else
  144.         {
  145.             if (strpos($line,"="))
  146.             {
  147.                 $pos strpos($line"=");
  148.                 $property trim(substr($line0$pos));
  149.                 // code by Greg Beaver
  150.                 if (substr($property01== '"' && substr($property-1== '"'{
  151.                     $property stripcslashes(substr($property,1,count($property2));
  152.                 }
  153.                 $value trim(substr($line$pos 1));
  154.                 if ($value == 'false'$value false;
  155.                 if ($value == 'true'$value true;
  156.                 if (substr($value01== '"' && substr($value,-1== '"')
  157.                 {
  158.                     $value stripcslashes(substr($value,1,count($value2));
  159.                 }
  160.                 // done additions
  161.                 
  162.                 if($process_sections)
  163.                 {
  164.                     if ($sec_name != '')
  165.                     $ini_array[$sec_name][$property$value;
  166.                     else
  167.                     $ini_array[$property$value;
  168.                 else
  169.                 {
  170.                     $ini_array[$property$value;
  171.                 }
  172.             else
  173.             {
  174.                 // code by Greg Beaver
  175.                 if (trim($line[0]== ';'continue;
  176.                 if($process_sections)
  177.                 {
  178.                     $ini_array[$sec_name][trim($line);
  179.                 }
  180.                 // done additions
  181.             }
  182.         }
  183.     }
  184.     return $ini_array;
  185. }
  186.  
  187.  
  188. if (!function_exists('array_key_exists'))
  189. {
  190. /** @ignore */
  191. function array_key_exists($key$search)
  192. {
  193.     foreach($search as $keys => $nul)
  194.     {
  195.         if ($key == $keysreturn true;
  196.     }
  197.     return false;
  198. }
  199. }
  200. if (!function_exists('is_a'))
  201. {
  202. /** @ignore */
  203. function is_a($classname$classquery)
  204. {
  205.     $father get_parent_class($classname);
  206.     if (strtolower($father== strtolower($classquery))
  207.     {
  208.         return true;
  209.     elseif (!empty($father))
  210.     {
  211.         return is_a($father$classquery);
  212.     else
  213.     {
  214.         return false;
  215.     }
  216. }
  217. }
  218.  
  219.  
  220. /** Debugging output */
  221. function debug($s)
  222. {
  223.     echo "$s\n";
  224. }
  225.  
  226. /**
  227.  * Returns a formatted var_dump for debugging purposes.
  228.  * @param string $s string to display
  229.  * @param mixed $v variable to display with var_dump()
  230.  * @param mixed $v... unlimited number of additional variables to display with var_dump()
  231.  */
  232. function fancy_debug($s,$v)
  233. {
  234.     if (isset($GLOBALS['dont_debug']&& $GLOBALS['dont_debug']return;
  235.     debug($s."\n\n</pre><blockquote><pre>");
  236.     var_dump($v);
  237.     if (func_num_args()>2)
  238.     {
  239.         for($i=2;$i<func_num_args();$i++)
  240.         {
  241.             $a func_get_arg($i);
  242. //            debug(" ");
  243.             var_dump($a);
  244.         }
  245.     }
  246.     debug("</pre></blockquote><pre>\n\n");
  247. }
  248.  
  249. /**
  250.  * Returns a lower-cased version of get_class for PHP 5
  251.  *
  252.  * get_class() returns case as declared in the file in PHP 5
  253.  */
  254. function phpDocumentor_get_class($object)
  255. {
  256.     return strtolower(get_class($object));
  257. }
  258.  
  259. ?>

Documentation generated on Tue, 24 Oct 2006 09:21:16 -0500 by phpDocumentor 1.3.1