summaryrefslogtreecommitdiff
path: root/buildscripts/PhpDocumentor/phpDocumentor/common.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'buildscripts/PhpDocumentor/phpDocumentor/common.inc.php')
-rwxr-xr-xbuildscripts/PhpDocumentor/phpDocumentor/common.inc.php312
1 files changed, 312 insertions, 0 deletions
diff --git a/buildscripts/PhpDocumentor/phpDocumentor/common.inc.php b/buildscripts/PhpDocumentor/phpDocumentor/common.inc.php
new file mode 100755
index 00000000..10c62568
--- /dev/null
+++ b/buildscripts/PhpDocumentor/phpDocumentor/common.inc.php
@@ -0,0 +1,312 @@
+<?php
+/**
+ * Common information needed by all portions of the application
+ *
+ * phpDocumentor :: automatic documentation generator
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2001-2008 Gregory Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @category ToolsAndUtilities
+ * @package phpDocumentor
+ * @author Greg Beaver <cellog@php.net>
+ * @copyright 2001-2008 Gregory Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id: common.inc.php 288074 2009-09-05 02:16:26Z ashnazg $
+ * @filesource
+ * @link http://www.phpdoc.org
+ * @link http://pear.php.net/PhpDocumentor
+ * @see parserDocBlock, parserInclude, parserPage, parserClass
+ * @see parserDefine, parserFunction, parserMethod, parserVar
+ * @since 1.0rc1
+ * @todo CS cleanup - change package to PhpDocumentor
+ * @todo CS cleanup - rename constant to TOKENIZER_EXT
+ */
+
+/* phpDocumentor version */
+if ('@PEAR-DIR@' != '@'.'PEAR-DIR@') {
+ /** @ignore */
+ define("PHPDOCUMENTOR_VER", "@VER@");
+} else {
+ define("PHPDOCUMENTOR_VER", "1.4.3");
+}
+
+/* phpDocumentor URL */
+define("PHPDOCUMENTOR_WEBSITE", "http://www.phpdoc.org");
+
+// set the correct path delimiter
+define('SMART_PATH_DELIMITER', DIRECTORY_SEPARATOR);
+
+define('tokenizer_ext', extension_loaded('tokenizer')
+ && version_compare(phpversion(), "4.3.0", ">="));
+
+// we just replace all the \ with / so that we can just operate on /
+define('PATH_DELIMITER', '/'); // set the correct path delimiter
+
+define('PHPDOCUMENTOR_WINDOWS', substr(PHP_OS, 0, 3) == 'WIN');
+
+define('_IN_PHP5',
+ phpversion() == '5.0.0RC1-dev' || phpversion() == '5.0.0RC2-dev'
+ || version_compare(phpversion(), '5.0.0', 'ge'));
+
+// determine which "clone" class to set, based on PHP major version
+$cloneClassDir = 'PhpDocumentor' . DIRECTORY_SEPARATOR . 'phpDocumentor';
+$cloneClassFile = 'clone.inc.php';
+if ('@VER@' == '@'.'VER@') {
+ // we're _not_ in a PEAR installation
+ $cloneClassDir = dirname(__FILE__);
+}
+if (_IN_PHP5) {
+ // we _are_ in PHP5
+ $cloneClassFile = 'clone5.inc.php';
+}
+require_once $cloneClassDir . DIRECTORY_SEPARATOR . $cloneClassFile;
+
+// make arg arrays available
+if (isset($_SERVER['argv'])) {
+ $argv = $_SERVER['argv'];
+ $argc = $_SERVER['argc'];
+}
+
+/**
+ * used in phpdoc.php and new_phpdoc.php
+ *
+ * @param string $directory a directory string
+ *
+ * @return array an array of directory contents
+ * @todo CS cleanup - rename function to PhpDocumentor_ConfigFileList
+ */
+function phpDocumentor_ConfigFileList($directory)
+{
+ $ret = array();
+ if (@is_dir($directory)) {
+ $ret = array();
+
+ // thanks to Jason E Sweat (jsweat@users.sourceforge.net) for fix
+ $d = @dir($directory);
+
+ while ($d && $entry=$d->read()) {
+ $getentry = false;
+ if (strcmp($entry, ".") != 0 && strcmp($entry, "..") != 0) {
+ if (substr($entry, 0, 1) != ".") $getentry = true;
+ }
+ if ($getentry == true) {
+ if (strpos($entry, '.ini'))
+ if (is_file($directory . PATH_DELIMITER . $entry)) {
+ $ret[] = str_replace('.ini', '', $entry);
+ }
+ }
+ }
+ if ($d) $d->close();
+ } else {
+ }
+ return $ret;
+}
+
+
+/**
+ * Parse an .ini file
+ *
+ * Works like {@link parse_ini_file}, except it will take a section like:
+ *
+ * <pre>
+ * [MYVAR]
+ * value1
+ * value2
+ * value3
+ * </pre>
+ *
+ * and return an associative array(MYVAR => array(value1, value2, value3))
+ *
+ * @param string $filename full path to the ini file
+ * @param bool $process_sections add an associative index
+ * for each section [in brackets]
+ *
+ * @return array
+ * @todo CS cleanup - rename function to PhpDocumentor_parse_ini_file
+ */
+function phpDocumentor_parse_ini_file($filename, $process_sections = false)
+{
+ $ini_array = array();
+ $sec_name = "";
+ $lines = @file($filename);
+ if (!$lines) return $lines;
+ foreach ($lines as $line) {
+ // code by Greg Beaver, ignore comments
+ if ($line[0] == ';') continue;
+ $line = trim($line);
+
+ if ($line == "") {
+ continue;
+ }
+ if ($line[0] == "[" && $line[strlen($line) - 1] == "]") {
+ $sec_name = substr($line, 1, strlen($line) - 2);
+ } else {
+ if (strpos($line, "=")) {
+ $pos = strpos($line, "=");
+ $property = trim(substr($line, 0, $pos));
+ // code by Greg Beaver
+ if (substr($property, 0, 1) == '"' && substr($property, -1) == '"') {
+ $property =
+ stripcslashes(substr($property, 1, count($property) - 2));
+ }
+ $value = trim(substr($line, $pos + 1));
+ if ($value == 'false') $value = false;
+ if ($value == 'true') $value = true;
+ if (substr($value, 0, 1) == '"' && substr($value, -1) == '"') {
+ $value = stripcslashes(substr($value, 1, count($value) - 2));
+ }
+ // done additions
+
+ if ($process_sections) {
+ if ($sec_name != '')
+ $ini_array[$sec_name][$property] = $value;
+ else
+ $ini_array[$property] = $value;
+ } else {
+ $ini_array[$property] = $value;
+ }
+ } else {
+ // code by Greg Beaver
+ if (trim($line[0]) == ';') continue;
+ if ($process_sections) {
+ $ini_array[$sec_name][] = trim($line);
+ }
+ // done additions
+ }
+ }
+ }
+ return $ini_array;
+}
+
+
+/**
+ * construct an "array_key_exists()" method
+ * if the runtime PHP version doesn't have one
+ *
+ * @todo CS Cleanup - can't avoid "prefixed by package" error
+ * @todo depend on PHP_Compat for this?
+ */
+if (!function_exists('array_key_exists')) {
+ /**
+ * Determines if a given key exists in a given array
+ *
+ * @param mixed $key key to search for
+ * @param array $search the array of keys to search
+ *
+ * @return bool whether or not the key was found
+ * @ignore
+ */
+ function array_key_exists($key, $search)
+ {
+ foreach ($search as $keys => $nul) {
+ if ($key == $keys) return true;
+ }
+ return false;
+ }
+}
+
+/**
+ * construct an "is_a()" method
+ * if the runtime PHP version doesn't have one
+ *
+ * @todo CS Cleanup - can't avoid "prefixed by package" error
+ * @todo depend on PHP_Compat for this?
+ */
+if (!function_exists('is_a')) {
+ /**
+ * Determines if one item "is" an object of the other item
+ *
+ * @param string $classname the class in question
+ * @param string $classquery the "is it a" class
+ *
+ * @return bool whether or not the class "is" one
+ * @ignore
+ */
+ function is_a($classname, $classquery)
+ {
+ $father = get_parent_class($classname);
+ if (strtolower($father) == strtolower($classquery)) {
+ return true;
+ } elseif (!empty($father)) {
+ return is_a($father, $classquery);
+ } else {
+ return false;
+ }
+ }
+}
+
+
+/**
+ * Debugging output
+ *
+ * @param string $s the "debug message" string to echo out
+ *
+ * @return void
+ * @todo CS Cleanup - can't avoid "prefixed by package" error
+ */
+function debug($s)
+{
+ echo "$s\n";
+}
+
+/**
+ * Returns a formatted var_dump for debugging purposes.
+ *
+ * @param string $s string to display
+ * @param mixed $v unlimited number of variables to display with var_dump()
+ *
+ * @return void
+ */
+function fancy_debug($s,$v)
+{
+ if (isset($GLOBALS['dont_debug']) && $GLOBALS['dont_debug']) return;
+ debug($s."\n\n</pre><blockquote><pre>");
+ var_dump($v);
+ if (func_num_args()>2) {
+ for ($i=2;$i<func_num_args();$i++) {
+ $a = func_get_arg($i);
+ // debug(" ");
+ var_dump($a);
+ }
+ }
+ debug("</pre></blockquote><pre>\n\n");
+}
+
+/**
+ * Returns a lower-cased version of get_class for PHP 5
+ *
+ * get_class() returns case as declared in the file in PHP 5
+ *
+ * @param object $object the object to get the classname for
+ *
+ * @return string the class name of the given object
+ * @todo CS cleanup - rename function to PhpDocumentor_get_class
+ */
+function phpDocumentor_get_class($object)
+{
+ if (is_object($object)) {
+ return strtolower(get_class($object));
+ }
+ return false;
+}
+
+?>