cvs: php-src(PHP_5_1) /ext/spl/examples class_tree.php

From: Date: Sun, 02 Oct 2005 23:12:35 +0000
Subject: cvs: php-src(PHP_5_1) /ext/spl/examples class_tree.php
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-34234@lists.php.net to get a copy of this message
helly Sun Oct 2 19:12:35 2005 EDT Added files: (Branch: PHP_5_1) /php-src/ext/spl/examples class_tree.php Log: - MFH add new example http://cvs.php.net/co.php/php-src/ext/spl/examples/class_tree.php?r=1.1&p=1 Index: php-src/ext/spl/examples/class_tree.php +++ php-src/ext/spl/examples/class_tree.php <?php /** @file class_tree.php * @brief Class Tree example * @ingroup Examples * @author Marcus Boerger * @date 2003 - 2005 * * 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"); class SubClasses extends RecursiveArrayIterator { function __construct($base, $check_interfaces = false) { foreach(get_declared_classes() as $cname) { if (strcasecmp(get_parent_class($cname), $base) == 0) { $this->offsetSet($cname, new SubClasses($cname)); } if ($check_interfaces) { foreach(class_implements($cname) as $iname) { if (strcasecmp($iname, $base) == 0) { $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)); } } } } } function getChildren() { return parent::current(); } function current() { return parent::key(); } } $it = new RecursiveTreeIterator(new SubClasses($argv[1], true)); echo $argv[1]."\n"; foreach($it as $c=>$v) { echo "$v\n"; } ?>

« previous php.cvs (#34234) next »