diff options
author | Peter Kokot <peterkokot@gmail.com> | 2018-09-26 15:35:38 +0200 |
---|---|---|
committer | Peter Kokot <peterkokot@gmail.com> | 2018-09-29 09:29:32 +0200 |
commit | 80c6ba26e3fe83174a0e7dce367d8a39aa093ae1 (patch) | |
tree | 39e2cf0bdaf194d175f9b8c9d72a389e5db7009c | |
parent | ab60b799128d5a99e7b8a1210155a4f63b3d81c7 (diff) | |
download | php-git-80c6ba26e3fe83174a0e7dce367d8a39aa093ae1.tar.gz |
Remove and refactor ext/spl/examples
- Test file from ext/spl/examples has been moved to ext/spl/tests
- Other custom SPL examples and implementations were removed in favor of
the PHP manual.
30 files changed, 2 insertions, 1359 deletions
diff --git a/ext/spl/README b/ext/spl/README index f946f837f8..39f3215bc8 100644 --- a/ext/spl/README +++ b/ext/spl/README @@ -1,7 +1,4 @@ This is an extension that aims to implement some efficient data access -interfaces and classes. You'll find the classes documented using php -code in the corresponding .inc files in the examples subdirectory. Based -on the internal implementations or the files in the examples subdirectory -there are also some .php files to experiment with. +interfaces and classes. For more information look at: http://php.net/manual/en/book.spl.php diff --git a/ext/spl/examples/autoload.inc b/ext/spl/examples/autoload.inc deleted file mode 100644 index 2ccd0d1be8..0000000000 --- a/ext/spl/examples/autoload.inc +++ /dev/null @@ -1,50 +0,0 @@ -<?php - -/** @file autoload.inc - * @ingroup Examples - * @brief function __autoload - * @author Marcus Boerger - * @date 2003 - 2005 - * - * SPL - Standard PHP Library - */ - -/** \internal - * Tries to load class $classname from directory $dir. - */ -function __load_class($classname, $dir) -{ - $file = $dir . '/' . $classname . '.inc'; - if (file_exists($file)) - { - require_once($file); - return true; - } - return false; -} - -/** - * @brief Class loader for SPL example classes - * @author Marcus Boerger - * @version 1.0 - * - * Loads classes automatically from include_path as given by ini or from - * current directory of script or include file. - */ -function __autoload($classname) { - $classname = strtolower($classname); - $inc = split(':', ini_get('include_path')); - $inc[] = '.'; - $inc[] = dirname($_SERVER['PATH_TRANSLATED']); - foreach($inc as $dir) - { - if (__load_class($classname, $dir)) - { - fprintf(STDERR, 'Loading class('.$classname.")\n"); - return; - } - } - fprintf(STDERR, 'Class not found ('.$classname.")\n"); -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/cachingrecursiveiterator.inc b/ext/spl/examples/cachingrecursiveiterator.inc deleted file mode 100644 index 4fa6b235c3..0000000000 --- a/ext/spl/examples/cachingrecursiveiterator.inc +++ /dev/null @@ -1,28 +0,0 @@ -<?php - -/** @file cachingrecursiveiterator.inc - * @ingroup Examples - * @brief class CachingRecursiveIterator - * @author Marcus Boerger - * @date 2003 - 2005 - * - * SPL - Standard PHP Library - */ - -/** @ingroup Examples - * @brief Compatibility to PHP 5.0 - * @author Marcus Boerger - * @version 1.2 - * @deprecated - * - * Class RecursiveCachingIterator was named CachingRecursiveIterator until - * PHP 5.0.6. - * - * @see RecursiveCachingIterator - */ - -class CachingRecursiveIterator extends RecursiveCachingIterator -{ -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/callbackfilteriterator.inc b/ext/spl/examples/callbackfilteriterator.inc deleted file mode 100644 index 51757012ec..0000000000 --- a/ext/spl/examples/callbackfilteriterator.inc +++ /dev/null @@ -1,122 +0,0 @@ -<?php - -/** @file callbackfilteriterator.inc - * @ingroup Examples - * @brief class CallbackFilterIterator - * @author Marcus Boerger - * @author Kevin McArthur - * @date 2006 - 2006 - * - * SPL - Standard PHP Library - */ - -/** @ingroup Examples - * @brief A non abstract FiletrIterator that uses a callback foreach element - * @author Marcus Boerger - * @author Kevin McArthur - * @version 1.0 - */ -class CallbackFilterIterator extends FilterIterator -{ - const USE_FALSE = 0; /**< mode: accept no elements, no callback */ - const USE_TRUE = 1; /**< mode: accept all elements, no callback */ - const USE_VALUE = 2; /**< mode: pass value to callback */ - const USE_KEY = 3; /**< mode: pass key to callback */ - const USE_BOTH = 4; /**< mode: pass value and key to callback */ - - const REPLACE = 0x00000001; /**< flag: pass key/value by reference */ - - private $callback; /**< callback to use */ - private $mode; /**< mode any of USE_VALUE, USE_KEY, USE_BOTH */ - private $flags; /**< flags (REPLACE) */ - private $key; /**< key value */ - private $current; /**< current value */ - - /** Construct a CallbackFilterIterator - * - * @param it inner iterator (iterator to filter) - * @param callback callback function - * @param mode any of USE_VALUE, USE_KEY, USE_BOTH - * @param flags any of 0, REPLACE - */ - public function __construct(Iterator $it, $callback, $mode = self::USE_VALUE, $flags = 0) - { - parent::__construct($it); - $this->callback = $callback; - $this->mode = $mode; - $this->flags = $flags; - } - - /** Call the filter callback - * @return result of filter callback - */ - public function accept() - { - $this->key = parent::key(); - $this->current = parent::current(); - - switch($this->mode) { - default: - case self::USE_FALSE; - return false; - case self::USE_TRUE: - return true; - case self::USE_VALUE: - if($this->flags & self::REPLACE) { - return (bool) call_user_func($this->callback, &$this->current); - } else { - return (bool) call_user_func($this->callback, $this->current); - } - case self::USE_KEY: - if($this->flags & self::REPLACE) { - return (bool) call_user_func($this->callback, &$this->key); - } else { - return (bool) call_user_func($this->callback, $this->key); - } - case SELF::USE_BOTH: - if($this->flags & self::REPLACE) { - return (bool) call_user_func($this->callback, &$this->key, &$this->current); - } else { - return (bool) call_user_func($this->callback, $this->key, $this->current); - } - } - } - - /** @return current key value */ - function key() - { - return $this->key; - } - - /** @return current value */ - function current() - { - return $this->current; - } - - /** @return operation mode */ - function getMode() - { - return $this->mode; - } - - /** @param $mode set new mode, @see mode */ - function setMode($mode) - { - $this->mode = $mode; - } - - /** @return operation flags */ - function getFlags() - { - return $this->flags; - } - - /** @param $flags set new flags, @see flags */ - function setFlags($flags) - { - $this->flags = $flags; - } -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/class_tree.php b/ext/spl/examples/class_tree.php deleted file mode 100755 index fc021d5c01..0000000000 --- a/ext/spl/examples/class_tree.php +++ /dev/null @@ -1,113 +0,0 @@ -<?php - -/** @file class_tree.php - * @brief Class Tree example - * @ingroup Examples - * @author Marcus Boerger - * @date 2003 - 2008 - * @version 1.1 - * - * Usage: php class_tree.php \<class\> - * - * Simply specify the root class or interface to tree with parameter \<class\>. - */ - -if ($argc < 2) { - echo <<<EOF -Usage: php ${_SERVER['PHP_SELF']} <class> - -Displays a graphical tree for the given <class>. - -<class> The class or interface for which to generate the tree graph. - - -EOF; - exit(1); -} - -if (!class_exists("RecursiveTreeIterator", false)) require_once("recursivetreeiterator.inc"); - -/** \brief Collects sub classes for given class or interface - */ -class SubClasses extends RecursiveArrayIterator -{ - /** @param base base class to collect sub classes for - * @param check_interfaces whether we deal with interfaces - */ - function __construct($base, $check_interfaces = false) - { - foreach(get_declared_classes() as $cname) - { - $parent = get_parent_class($cname); - if (strcasecmp($parent, $base) == 0) - { - $this->offsetSet($cname, new SubClasses($cname)); - } - if ($check_interfaces) - { - if ($parent) - { - $parent_imp = class_implements($parent); - } - foreach(class_implements($cname) as $iname) - { - if (strcasecmp($iname, $base) == 0) - { - if (!$parent || !in_array($iname, $parent_imp)) - { - $this->offsetSet($cname, new SubClasses($cname)); - } - } - } - } - } - if ($check_interfaces) - { - foreach(get_declared_interfaces() as $cname) - { - foreach(class_implements($cname) as $iname) - { - if (strcasecmp($iname, $base) == 0) - { - $this->offsetSet($cname, new SubClasses($cname, true)); - } - } - } - } - $this->uksort('strnatcasecmp'); - } - - /** @return key() since that is the name we need - */ - function current() - { - $result = parent::key(); - $parent = get_parent_class($result); - if ($parent) - { - $interfaces = array_diff(class_implements($result), class_implements($parent)); - if ($interfaces) - { - $implements = array(); - foreach($interfaces as $interface) - { - $implements = array_merge($implements, class_implements($interface)); - } - $interfaces = array_diff($interfaces, $implements); - natcasesort($interfaces); - $result .= ' (' . join(', ', $interfaces) . ')'; - } - } - return $result; - } -} - -$it = new RecursiveTreeIterator(new SubClasses($argv[1], true)); - -echo $argv[1]."\n"; -foreach($it as $c=>$v) -{ - echo "$v\n"; -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/dba_array.php b/ext/spl/examples/dba_array.php deleted file mode 100755 index 346ac1f2f7..0000000000 --- a/ext/spl/examples/dba_array.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php - -/** @file dba_array.php - * @brief Program DBA array utility - * @ingroup Examples - * @author Marcus Boerger - * @date 2003 - 2005 - * - * Usage php dba_array.php \<file\> \<handler\> \<key\> [\<value\>] - * - * If \<value\> is specified then \<key\> is set to \<value\> in \<file\>. - * Else the value of \<key\> is printed only. - * - * Note: configure with --enable-dba - */ - -if ($argc < 4) { - echo <<<EOF -Usage: php ${_SERVER['PHP_SELF']} <file> <handler> <key> [<value>] - -If <value> is specified then <key> is set to <value> in <file>. -Else the value of <key> is printed only. - - -EOF; - exit(1); -} - -if (!class_exists("DbaReader", false)) require_once("dbareader.inc"); - -try { - if ($argc > 2) { - $dba = new DbaArray($argv[1], $argv[2]); - if ($dba && $argc > 3) { - if ($argc > 4) { - $dba[$argv[3]] = $argv[4]; - } - var_dump(array('Index' => $argv[3], 'Value' => $dba[$argv[3]])); - } - unset($dba); - } - else - { - echo "Not enough parameters\n"; - exit(1); - } -} -catch (exception $err) { - var_dump($err); - exit(1); -} -?>
\ No newline at end of file diff --git a/ext/spl/examples/dba_dump.php b/ext/spl/examples/dba_dump.php deleted file mode 100755 index 2c698d427a..0000000000 --- a/ext/spl/examples/dba_dump.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php - -/** @file dba_dump.php - * @brief Program DBA dump utility - * @ingroup Examples - * @author Marcus Boerger - * @date 2003 - 2005 - * - * Usage: php dba_dump.php \<file\> \<handler\> [\<regex\>] - * - * Show all groups in the ini file specified by \<file\>. - * The regular expression \<regex\> is used to filter the by setting name. - * - * Note: configure with --enable-dba - */ - -if ($argc < 3) { - echo <<<EOF -Usage: php ${_SERVER['PHP_SELF']} <file> <handler> [<regex>] - -Show all groups in the ini file specified by <file>. -The regular expression <regex> is used to filter the by setting name. - - -EOF; - exit(1); -} - -if (!class_exists("DbaReader", false)) require_once("dbareader.inc"); -if (!class_exists("KeyFilter", false)) require_once("keyfilter.inc"); - -$db = new DbaReader($argv[1], $argv[2]); - -if ($argc>3) { - $db = new KeyFilter($db, $argv[3]); -} - -foreach($db as $key => $val) { - echo "'$key' => '$val'\n"; -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/dbaarray.inc b/ext/spl/examples/dbaarray.inc deleted file mode 100644 index d6ee56f442..0000000000 --- a/ext/spl/examples/dbaarray.inc +++ /dev/null @@ -1,95 +0,0 @@ -<?php - -/** @file dbaarray.inc - * @ingroup Examples - * @brief class DbaArray - * @author Marcus Boerger - * @date 2003 - 2005 - * - * SPL - Standard PHP Library - */ - -if (!class_exists("DbaReader", false)) require_once("dbareader.inc"); - -/** @ingroup Examples - * @brief This implements a DBA Array - * @author Marcus Boerger - * @version 1.0 - */ -class DbaArray extends DbaReader implements ArrayAccess -{ - - /** - * Open database $file with $handler in read only mode. - * - * @param file Database file to open. - * @param handler Handler to use for database access. - */ - function __construct($file, $handler) - { - $this->db = dba_popen($file, "c", $handler); - if (!$this->db) { - throw new exception("Databse could not be opened"); - } - } - - /** - * Close database. - */ - function __destruct() - { - parent::__destruct(); - } - - /** - * Read an entry. - * - * @param $name key to read from - * @return value associated with $name - */ - function offsetGet($name) - { - $data = dba_fetch($name, $this->db); - if($data) { - //return unserialize($data); - return $data; - } - else - { - return NULL; - } - } - - /** - * Set an entry. - * - * @param $name key to write to - * @param $value value to write - */ - function offsetSet($name, $value) - { - //dba_replace($name, serialize($value), $this->db); - dba_replace($name, $value, $this->db); - return $value; - } - - /** - * @return whether key $name exists. - */ - function offsetExists($name) - { - return dba_exists($name, $this->db); - } - - /** - * Delete a key/value pair. - * - * @param $name key to delete. - */ - function offsetUnset($name) - { - return dba_delete($name, $this->db); - } -} - -?> diff --git a/ext/spl/examples/dbareader.inc b/ext/spl/examples/dbareader.inc deleted file mode 100644 index 01de37e990..0000000000 --- a/ext/spl/examples/dbareader.inc +++ /dev/null @@ -1,96 +0,0 @@ -<?php - -/** @file dbareader.inc - * @ingroup Examples - * @brief class DbaReader - * @author Marcus Boerger - * @date 2003 - 2005 - * - * SPL - Standard PHP Library - */ - -/** @ingroup Examples - * @brief This implements a DBA Iterator. - * @author Marcus Boerger - * @version 1.0 - */ -class DbaReader implements Iterator -{ - - protected $db = NULL; - private $key = false; - private $val = false; - - /** - * Open database $file with $handler in read only mode. - * - * @param file Database file to open. - * @param handler Handler to use for database access. - */ - function __construct($file, $handler) { - if (!$this->db = dba_open($file, 'r', $handler)) { - throw new exception('Could not open file ' . $file); - } - } - - /** - * Close database. - */ - function __destruct() { - dba_close($this->db); - } - - /** - * Rewind to first element. - */ - function rewind() { - $this->key = dba_firstkey($this->db); - $this->fetch_data(); - } - - /** - * Move to next element. - * - * @return void - */ - function next() { - $this->key = dba_nextkey($this->db); - $this->fetch_data(); - } - - /** - * Fetches the current data if $key is valid - */ - private function fetch_data() { - if ($this->key !== false) { - $this->val = dba_fetch($this->key, $this->db); - } - } - - /** - * @return Current data. - */ - function current() { - return $this->val; - } - - /** - * @return Whether more elements are available. - */ - function valid() { - if ($this->db && $this->key !== false) { - return true; - } else { - return false; - } - } - - /** - * @return Current key. - */ - function key() { - return $this->key; - } -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/directoryfilterdots.inc b/ext/spl/examples/directoryfilterdots.inc deleted file mode 100644 index 454bd90883..0000000000 --- a/ext/spl/examples/directoryfilterdots.inc +++ /dev/null @@ -1,45 +0,0 @@ -<?php - -/** @file directoryfilterdots.inc - * @ingroup Examples - * @brief class DirectoryFilterDots - * @author Marcus Boerger - * @date 2003 - 2006 - * - * SPL - Standard PHP Library - */ - -/** @ingroup Examples - * @brief A filtered DirectoryIterator - * @author Marcus Boerger - * @version 1.2 - * - * This Iterator takes a pathname from which it creates a RecursiveDirectoryIterator - * and makes it recursive. Further more it filters the entries '.' and '..'. - */ -class DirectoryFilterDots extends RecursiveFilterIterator -{ - /** Construct from a path. - * @param $path directory to iterate - */ - function __construct($path) - { - parent::__construct(new RecursiveDirectoryIterator($path)); - } - - /** @return whether the current entry is neither '.' nor '..' - */ - function accept() - { - return !$this->getInnerIterator()->isDot(); - } - - /** @return the current entries path name - */ - function key() - { - return $this->getInnerIterator()->getPathname(); - } -} - -?> diff --git a/ext/spl/examples/directorygraphiterator.inc b/ext/spl/examples/directorygraphiterator.inc deleted file mode 100644 index 3f0bb263e2..0000000000 --- a/ext/spl/examples/directorygraphiterator.inc +++ /dev/null @@ -1,34 +0,0 @@ -<?php - -/** @file directorygraphiterator.inc - * @ingroup Examples - * @brief class DirectoryGraphIterator - * @author Marcus Boerger - * @date 2003 - 2005 - * - * SPL - Standard PHP Library - */ - -/** @ingroup Examples - * @brief A tree iterator that only shows directories. - * @author Marcus Boerger - * @version 1.1 - */ -class DirectoryGraphIterator extends DirectoryTreeIterator -{ - function __construct($path) - { - RecursiveIteratorIterator::__construct( - new RecursiveCachingIterator( - new ParentIterator( - new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::KEY_AS_FILENAME - ) - ), - CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD - ), - parent::SELF_FIRST - ); - } -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/directorytree.inc b/ext/spl/examples/directorytree.inc deleted file mode 100644 index 7bd9c2c597..0000000000 --- a/ext/spl/examples/directorytree.inc +++ /dev/null @@ -1,27 +0,0 @@ -<?php - -/** @file directorytree.inc - * @ingroup Examples - * @brief class DirectoryTree - * @author Marcus Boerger - * @date 2003 - 2005 - * - * SPL - Standard PHP Library - */ - -/** @ingroup Examples - * @brief A directory iterator that does not show '.' and '..'. - * @author Marcus Boerger - * @version 1.0 - */ -class DirectoryTree extends RecursiveIteratorIterator -{ - /** Construct from a path. - * @param $path directory to iterate - */ - function __construct($path) { - parent::__construct(new DirectoryFilterDots($path)); - } -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/directorytree.php b/ext/spl/examples/directorytree.php deleted file mode 100755 index dc26d6cc22..0000000000 --- a/ext/spl/examples/directorytree.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php - -/** @file directorytree.php - * @brief Program Directory tree example - * @ingroup Examples - * @author Marcus Boerger - * @date 2003 - 2005 - * - * Usage: php directorytree.php \<path\> [\<start\> [\<count\>]] - * - * Simply specify the path to tree with parameter \<path\>. - */ - -if ($argc < 2) { - echo <<<EOF -Usage: php ${_SERVER['PHP_SELF']} <path> - -Displays a graphical directory tree for the given <path>. - -<path> The directory for which to generate the directory tree graph. - - -EOF; - exit(1); -} - -if (!class_exists("DirectoryTreeIterator", false)) require_once("directorytreeiterator.inc"); - -$length = $argc > 3 ? $argv[3] : -1; - -echo $argv[1]."\n"; -foreach(new LimitIterator(new DirectoryTreeIterator($argv[1]), @$argv[2], $length) as $key=>$file) { -//foreach(new DirectoryTreeIterator($argv[1]) as $file) { - echo $file . "\n"; -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/directorytreeiterator.inc b/ext/spl/examples/directorytreeiterator.inc deleted file mode 100644 index 8454d9e305..0000000000 --- a/ext/spl/examples/directorytreeiterator.inc +++ /dev/null @@ -1,54 +0,0 @@ -<?php - -/** @file directorytreeiterator.inc - * @ingroup Examples - * @brief class DirectoryTreeIterator - * @author Marcus Boerger - * @date 2003 - 2005 - * - * SPL - Standard PHP Library - */ - -/** @ingroup Examples - * @brief DirectoryIterator to generate ASCII graphic directory trees - * @author Marcus Boerger - * @version 1.1 - */ -class DirectoryTreeIterator extends RecursiveIteratorIterator -{ - /** Construct from a path. - * @param $path directory to iterate - */ - function __construct($path) - { - parent::__construct( - new RecursiveCachingIterator( - new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::KEY_AS_FILENAME - ), - CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD - ), - parent::SELF_FIRST - ); - } - - /** @return the current element prefixed with ASCII graphics - */ - function current() - { - $tree = ''; - for ($l=0; $l < $this->getDepth(); $l++) { - $tree .= $this->getSubIterator($l)->hasNext() ? '| ' : ' '; - } - return $tree . ($this->getSubIterator($l)->hasNext() ? '|-' : '\-') - . $this->getSubIterator($l)->__toString(); - } - - /** Aggregates the inner iterator - */ - function __call($func, $params) - { - return call_user_func_array(array($this->getSubIterator(), $func), $params); - } -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/findfile.inc b/ext/spl/examples/findfile.inc deleted file mode 100644 index 02ab792433..0000000000 --- a/ext/spl/examples/findfile.inc +++ /dev/null @@ -1,65 +0,0 @@ -<?php - -/** @file findfile.inc - * @ingroup Examples - * @brief class FindFile - * @author Marcus Boerger - * @date 2003 - 2005 - * - * SPL - Standard PHP Library - */ - -if (!class_exists("FindFile", false)) require_once("findfile.inc"); -if (!class_exists("AppendIterator", false)) require_once("appenditerator.inc"); - -/** @ingroup Examples - * @brief Base class to find files - * @author Marcus Boerger - * @version 1.1 - * - */ -class FindFile extends FilterIterator -{ - /** @internal filename to find */ - private $file; - - /** Construct from path and filename - * - * @param $path the directory to search in - * If path contains ';' then this parameter is split and every - * part of it is used as separate directory. - * @param $file the name of the files to search fro - */ - function __construct($path, $file) - { - $this->file = $file; - $list = split(PATH_SEPARATOR, $path); - if (count($list) <= 1) { - parent::__construct(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path))); - } else { - $it = new AppendIterator(); - foreach($list as $path) { - $it->append(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path))); - } - parent::__construct($it); - } - } - - /** @return whether the current file matches the given filename - */ - function accept() - { - return !strcmp($this->current(), $this->file); - } - - /** @return the filename to search for. - * @note This may be overloaded and contain a regular expression for an - * extended class that uses regular expressions to search. - */ - function getSearch() - { - return $this->file; - } -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/findfile.php b/ext/spl/examples/findfile.php deleted file mode 100755 index 60146cbffd..0000000000 --- a/ext/spl/examples/findfile.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php - -/** @file findfile.php - * @brief Program Find a specific file by name. - * @ingroup Examples - * @author Marcus Boerger - * @date 2003 - 2005 - * - * Usage: php findfile.php \<path\> \<name\> - * - * \<path\> Path to search in. You can specify multiple paths by separating - * them with ';'. - * \<name\> Filename to look for. - */ - -if ($argc < 3) { - echo <<<EOF -Usage: php findfile.php <path> <name> - -Find a specific file by name. - -<path> Path to search in. -<name> Filename to look for. - - -EOF; - exit(1); -} - -if (!class_exists("FindFile", false)) require_once("findfile.inc"); - -foreach(new FindFile($argv[1], $argv[2]) as $file) echo $file->getPathname()."\n"; -?>
\ No newline at end of file diff --git a/ext/spl/examples/findregex.php b/ext/spl/examples/findregex.php deleted file mode 100755 index b43ee0cbbc..0000000000 --- a/ext/spl/examples/findregex.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php - -/** @file findregex.php - * @brief Program Find a specific file by name. - * @ingroup Examples - * @author Marcus Boerger, Adam Trachtenberg - * @date 2004 - * - * Usage: php findregex.php \<path\> \<name\> - * - * \<path\> Path to search in. - * \<name\> Filename to look for. - */ - -if ($argc < 3) { - echo <<<EOF -Usage: php findregex.php <file> <name> - -Find a specific file by name. - -<path> Path to search in. -<name> Regex for filenames to look for. - - -EOF; - exit(1); -} - -if (!class_exists("RegexFindFile", false)) require_once("regexfindfile.inc"); - -foreach(new RegexFindFile($argv[1], $argv[2]) as $file) -{ - echo $file->getPathname()."\n"; -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/ini_groups.php b/ext/spl/examples/ini_groups.php deleted file mode 100755 index 5136911096..0000000000 --- a/ext/spl/examples/ini_groups.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php - -/** @file ini_groups.php - * @brief Program List groups within an ini file - * @ingroup Examples - * @author Marcus Boerger - * @date 2003 - 2005 - * - * Usage: php dba_dump.php \<file\> [\<regex\>] - * - * Show all groups in the ini file specified by \<file\>. - * The regular expression \<regex\> is used to filter the result. - * - * Note: configure with --enable-dba - */ - -if ($argc < 2) { - echo <<<EOF -Usage: php dba_dump.php <file> [<regex>] - -Show all groups in the ini file specified by <file>. -The regular expression <regex> is used to filter the result. - - -EOF; - exit(1); -} - -if (!class_exists("KeyFilter", false)) require_once("keyfilter.inc"); -if (!class_exists("IniGroups", false)) require_once("inigroups.inc"); - -$it = new IniGroups($argv[1]); -if ($argc>2) { - $it = new KeyFilter($it, $argv[2]); -} - -foreach($it as $group) { - echo "$group\n"; -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/inigroups.inc b/ext/spl/examples/inigroups.inc deleted file mode 100644 index cb2bb04a57..0000000000 --- a/ext/spl/examples/inigroups.inc +++ /dev/null @@ -1,54 +0,0 @@ -<?php - -/** @file inigroups.inc - * @ingroup Examples - * @brief class IniGroups - * @author Marcus Boerger - * @date 2003 - 2005 - * - * SPL - Standard PHP Library - */ - -if (!class_exists("KeyFilter", false)) require_once("keyfilter.inc"); -if (!class_exists("DbaReader", false)) require_once("dbareader.inc"); - -/** @ingroup Examples - * @brief Class to iterate all groups within an ini file. - * @author Marcus Boerger - * @version 1.1 - * - * Using this class you can iterator over all groups of a ini file. - * - * This class uses a 'is-a' relation to KeyFilter in contrast to a 'has-a' - * relation. Doing so both current() and key() methods must be overwritten. - * If it would use a 'has-a' relation there would be much more to type... - * but for puritists that would allow correctness in so far as then no - * key() would be needed. - */ -class IniGroups extends KeyFilter -{ - /** - * Construct an ini file group iterator from a filename. - * - * @param file Ini file to open. - */ - function __construct($file) { - parent::__construct(new DbaReader($file, 'inifile'), '^\[.*\]$'); - } - - /** - * @return The current group. - */ - function current() { - return substr(parent::key(),1,-1); - } - - /** - * @return The current group. - */ - function key() { - return substr(parent::key(),1,-1); - } -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/keyfilter.inc b/ext/spl/examples/keyfilter.inc deleted file mode 100644 index abc925ec43..0000000000 --- a/ext/spl/examples/keyfilter.inc +++ /dev/null @@ -1,64 +0,0 @@ -<?php - -/** @file keyfilter.inc - * @ingroup Examples - * @brief class KeyFilter - * @author Marcus Boerger - * @date 2003 - 2005 - * - * SPL - Standard PHP Library - */ - -/** @ingroup Examples - * @brief Regular expression filter for string iterators - * @author Marcus Boerger - * @version 1.1 - * - * Instances of this class act as a filter around iterators whose elements - * are strings. In other words you can put an iterator into the constructor - * and the instance will only return elements which match the given regular - * expression. - */ -class KeyFilter extends FilterIterator -{ - /** @internal regular exoression used as filter */ - private $regex; - - /** - * Constructs a filter around an iterator whose elemnts are strings. - * If the given iterator is of type spl_sequence then its rewind() - * method is called. - * - * @param it Object that implements at least spl_forward - * @param regex Regular expression used as a filter. - */ - function __construct(Iterator $it, $regex) - { - parent::__construct($it); - $this->regex = $regex; - } - - /** \return whether the current key mathes the regular expression - */ - function accept() - { - return ereg($this->regex, $this->getInnerIterator()->key()); - } - - /** @return regular expression used as filter - */ - function getRegex() - { - return $this->regex; - } - - /** - * hidden __clone - */ - protected function __clone() - { - // disallow clone - } -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/nocvsdir.php b/ext/spl/examples/nocvsdir.php deleted file mode 100755 index 6993268945..0000000000 --- a/ext/spl/examples/nocvsdir.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php - -/** @file nocvsdir.php - * @brief Program Dir without CVS subdirs - * @ingroup Examples - * @author Marcus Boerger - * @date 2003 - 2006 - * @version 1.1 - * - * Usage: php nocvsdir.php \<path\> - * - * Simply specify the path to tree with parameter \<path\>. - */ - -if ($argc < 2) { - echo <<<EOF -Usage: php ${_SERVER['PHP_SELF']} <path> - -Show the directory and all it's contents without any CVS directory in <path>. - -<path> The directory for which to generate the directory. - - -EOF; - exit(1); -} - -if (!class_exists("RecursiveFilterIterator")) require_once("recursivefilteriterator.inc"); - -class NoCvsDirectory extends RecursiveFilterIterator -{ - function __construct($path) - { - parent::__construct(new RecursiveDirectoryIterator($path)); - } - - function accept() - { - return $this->getInnerIterator()->getFilename() != 'CVS'; - } - - function getChildren() - { - return new NoCvsDirectory($this->key()); - } -} - -$it = new RecursiveIteratorIterator(new NoCvsDirectory($argv[1])); - -foreach($it as $pathname => $file) -{ - echo $pathname."\n"; -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/phar_from_dir.php b/ext/spl/examples/phar_from_dir.php deleted file mode 100755 index 2ee15ca1e6..0000000000 --- a/ext/spl/examples/phar_from_dir.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php - -/** @file phar_from_dir.php - * @brief Create phar archive from directory - * @ingroup examples - * @author Marcus Boerger - * @date 2003 - 2007 - * @version 1.0 - * - * Usage: php phar_create_from_dir.php \<archive\> \<directory\> [\<regex\>] - * - * Create phar archive \<archive\> using entries from \<directory\> that - * optionally match \<regex\>. - */ - -if ($argc < 3) -{ - echo <<<EOF -php phar_from_dir.php archive directory [regex] - -Packs files in a given directory into a phar archive. - -archive name of the archive to create -directory input directory to pack -regex optional expression to match files in directory - -EOF; - exit(1); -} - -$phar = new Phar($argv[1], 0, 'newphar'); - -$dir = new RecursiveDirectoryIterator($argv[2]); -$dir = new RecursiveIteratorIterator($dir); -if ($argc > 3) -{ - $dir = new RegexIterator($dir, '/'.$argv[3].'/'); -} - -$phar->begin(); - -foreach($dir as $file) -{ - echo "$file\n"; - copy($file, "phar://newphar/$file"); -} - -$phar->commit(); - -?>
\ No newline at end of file diff --git a/ext/spl/examples/regexfindfile.inc b/ext/spl/examples/regexfindfile.inc deleted file mode 100644 index d5dd722536..0000000000 --- a/ext/spl/examples/regexfindfile.inc +++ /dev/null @@ -1,40 +0,0 @@ -<?php - -/** @file regexfindfile.inc - * @ingroup Examples - * @brief class RegexFindFile - * @author Marcus Boerger - * @date 2003 - 2005 - * - * SPL - Standard PHP Library - */ - -/** @ingroup Examples - * @brief Find files by regular expression - * @author Marcus Boerger - * @version 1.1 - * - */ -class RegexFindFile extends FindFile -{ - /** Construct from path and regular expression - * - * @param $path the directory to search in - * If path contains ';' then this parameter is split and every - * part of it is used as separate directory. - * @param $regex perl style regular expression to find files with - */ - function __construct($path, $regex) - { - parent::__construct($path, $regex); - } - - /** @return whether the current filename matches the regular expression. - */ - function accept() - { - return preg_match($this->getSearch(), $this->current()); - } -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/searchiterator.inc b/ext/spl/examples/searchiterator.inc deleted file mode 100644 index ff4963bc72..0000000000 --- a/ext/spl/examples/searchiterator.inc +++ /dev/null @@ -1,58 +0,0 @@ -<?php - -/** @file searchiterator.inc - * @ingroup Examples - * @brief abstract class SearchIterator - * @author Marcus Boerger - * @date 2003 - 2005 - * - * SPL - Standard PHP Library - */ - -/** @ingroup Examples - * @brief Iterator to search for a specific element - * @author Marcus Boerger - * @version 1.0 - * - * This extended FilterIterator stops after finding the first acceptable - * value. - */ -abstract class SearchIterator extends FilterIterator -{ - /** @internal whether an entry was found already */ - private $done = false; - - /** Rewind and reset so that it once again searches. - * @return void - */ - function rewind() - { - parent::rewind(); - $this->done = false; - } - - /** @return whether the current element is valid - * which can only happen once per iteration. - */ - function valid() - { - return !$this->done && parent::valid(); - } - - /** Do not move forward but instead mark as finished. - * @return void - */ - function next() - { - $this->done = true; - } - - /** Aggregates the inner iterator - */ - function __call($func, $params) - { - return call_user_func_array(array($this->getInnerIterator(), $func), $params); - } -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/tests/examples.inc b/ext/spl/examples/tests/examples.inc deleted file mode 100644 index feeba7db24..0000000000 --- a/ext/spl/examples/tests/examples.inc +++ /dev/null @@ -1,23 +0,0 @@ -<?php - -class IncludeFiles extends ArrayIterator -{ - function __construct($path, $classes) - { - parent::__construct(); - foreach($classes as $c) - { - $this->append($path . '/' . strtolower($c) . '.inc'); - } - } -} - -$classes = array( -); - -foreach (new IncludeFiles(dirname(__FILE__). '/..', $classes) as $file) -{ - require_once($file); -} - -?>
\ No newline at end of file diff --git a/ext/spl/examples/tree.php b/ext/spl/examples/tree.php deleted file mode 100755 index 9c2cc55866..0000000000 --- a/ext/spl/examples/tree.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php - -/** @file tree.php - * @brief Program Tree view example - * @ingroup Examples - * @author Marcus Boerger - * @date 2003 - 2005 - * - * Usage: php tree.php \<path\> - * - * Simply specify the path to tree with parameter \<path\>. - */ - -// The following line only operates on classes which are converted to c already. -// But does not generate a graphical output. -//foreach(new RecursiveIteratorIterator(new ParentIterator(new RecursiveDirectoryIterator($argv[1])), 1) as $file) { - -if ($argc < 2) { - echo <<<EOF -Usage: php ${_SERVER['PHP_SELF']} <path> - -Displays a graphical tree for the given <path>. - -<path> The directory for which to generate the tree graph. - - -EOF; - exit(1); -} - -if (!class_exists("DirectoryTreeIterator", false)) require_once("directorytreeiterator.inc"); -if (!class_exists("DirectoryGraphIterator", false)) require_once("directorygraphiterator.inc"); - -echo $argv[1]."\n"; -foreach(new DirectoryGraphIterator($argv[1]) as $file) -{ - echo $file . "\n"; -} - -?> diff --git a/ext/spl/examples/dualiterator.inc b/ext/spl/tests/dualiterator.inc index eeb8ae869c..eeb8ae869c 100644 --- a/ext/spl/examples/dualiterator.inc +++ b/ext/spl/tests/dualiterator.inc diff --git a/ext/spl/examples/tests/dualiterator_001.phpt b/ext/spl/tests/dualiterator_001.phpt index eb92347d51..dd75ca9463 100644 --- a/ext/spl/examples/tests/dualiterator_001.phpt +++ b/ext/spl/tests/dualiterator_001.phpt @@ -5,7 +5,7 @@ SPL: DualIterator function spl_examples_autoload($classname) { - include(dirname(__FILE__) . '/../' . strtolower($classname) . '.inc'); + include(dirname(__FILE__) . '/' . strtolower($classname) . '.inc'); } spl_autoload_register('spl_examples_autoload'); diff --git a/ext/spl/examples/recursivecomparedualiterator.inc b/ext/spl/tests/recursivecomparedualiterator.inc index 5b63e9f0b3..5b63e9f0b3 100644 --- a/ext/spl/examples/recursivecomparedualiterator.inc +++ b/ext/spl/tests/recursivecomparedualiterator.inc diff --git a/ext/spl/examples/recursivedualiterator.inc b/ext/spl/tests/recursivedualiterator.inc index a56984e083..a56984e083 100644 --- a/ext/spl/examples/recursivedualiterator.inc +++ b/ext/spl/tests/recursivedualiterator.inc |