]> granicus.if.org Git - php/commitdiff
Remove and refactor ext/spl/examples
authorPeter Kokot <peterkokot@gmail.com>
Wed, 26 Sep 2018 13:35:38 +0000 (15:35 +0200)
committerPeter Kokot <peterkokot@gmail.com>
Sat, 29 Sep 2018 07:29:32 +0000 (09:29 +0200)
- 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:
ext/spl/README
ext/spl/examples/autoload.inc [deleted file]
ext/spl/examples/cachingrecursiveiterator.inc [deleted file]
ext/spl/examples/callbackfilteriterator.inc [deleted file]
ext/spl/examples/class_tree.php [deleted file]
ext/spl/examples/dba_array.php [deleted file]
ext/spl/examples/dba_dump.php [deleted file]
ext/spl/examples/dbaarray.inc [deleted file]
ext/spl/examples/dbareader.inc [deleted file]
ext/spl/examples/directoryfilterdots.inc [deleted file]
ext/spl/examples/directorygraphiterator.inc [deleted file]
ext/spl/examples/directorytree.inc [deleted file]
ext/spl/examples/directorytree.php [deleted file]
ext/spl/examples/directorytreeiterator.inc [deleted file]
ext/spl/examples/findfile.inc [deleted file]
ext/spl/examples/findfile.php [deleted file]
ext/spl/examples/findregex.php [deleted file]
ext/spl/examples/ini_groups.php [deleted file]
ext/spl/examples/inigroups.inc [deleted file]
ext/spl/examples/keyfilter.inc [deleted file]
ext/spl/examples/nocvsdir.php [deleted file]
ext/spl/examples/phar_from_dir.php [deleted file]
ext/spl/examples/regexfindfile.inc [deleted file]
ext/spl/examples/searchiterator.inc [deleted file]
ext/spl/examples/tests/examples.inc [deleted file]
ext/spl/examples/tree.php [deleted file]
ext/spl/tests/dualiterator.inc [moved from ext/spl/examples/dualiterator.inc with 100% similarity]
ext/spl/tests/dualiterator_001.phpt [moved from ext/spl/examples/tests/dualiterator_001.phpt with 93% similarity]
ext/spl/tests/recursivecomparedualiterator.inc [moved from ext/spl/examples/recursivecomparedualiterator.inc with 100% similarity]
ext/spl/tests/recursivedualiterator.inc [moved from ext/spl/examples/recursivedualiterator.inc with 100% similarity]

index f946f837f8513c053b6474f4b13cab8e22d987f2..39f3215bc89fb8f9ee9a0e83da9eaff7df8c6859 100644 (file)
@@ -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 (file)
index 2ccd0d1..0000000
+++ /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 (file)
index 4fa6b23..0000000
+++ /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 (file)
index 5175701..0000000
+++ /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 (executable)
index fc021d5..0000000
+++ /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 (executable)
index 346ac1f..0000000
+++ /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 (executable)
index 2c698d4..0000000
+++ /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 (file)
index d6ee56f..0000000
+++ /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 (file)
index 01de37e..0000000
+++ /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 (file)
index 454bd90..0000000
+++ /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 (file)
index 3f0bb26..0000000
+++ /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 (file)
index 7bd9c2c..0000000
+++ /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 (executable)
index dc26d6c..0000000
+++ /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 (file)
index 8454d9e..0000000
+++ /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 (file)
index 02ab792..0000000
+++ /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 (executable)
index 60146cb..0000000
+++ /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 (executable)
index b43ee0c..0000000
+++ /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 (executable)
index 5136911..0000000
+++ /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 (file)
index cb2bb04..0000000
+++ /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 (file)
index abc925e..0000000
+++ /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 (executable)
index 6993268..0000000
+++ /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 (executable)
index 2ee15ca..0000000
+++ /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 (file)
index d5dd722..0000000
+++ /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 (file)
index ff4963b..0000000
+++ /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 (file)
index feeba7d..0000000
+++ /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 (executable)
index 9c2cc55..0000000
+++ /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";
-}
-
-?>
similarity index 93%
rename from ext/spl/examples/tests/dualiterator_001.phpt
rename to ext/spl/tests/dualiterator_001.phpt
index eb92347d51ab4f707eb80a7d17bd2ac497ea8f2f..dd75ca9463c52624bf23f9afad85d2bdae5d0ce7 100644 (file)
@@ -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');