helly Thu May 6 18:55:25 2004 EDT
Added files:
/php-src/ext/spl/examples IniGroups.inc KeyFilter.inc
Removed files:
/php-src/ext/spl/examples key_filter.inc
Modified files:
/php-src/ext/spl spl.php
/php-src/ext/spl/examples dba_dump.php ini_groups.php
Log:
- Update examples
http://cvs.php.net/diff.php/php-src/ext/spl/spl.php?r1=1.22&r2=1.23&ty=u
Index: php-src/ext/spl/spl.php
diff -u php-src/ext/spl/spl.php:1.22 php-src/ext/spl/spl.php:1.23
--- php-src/ext/spl/spl.php:1.22 Thu May 6 17:46:40 2004
+++ php-src/ext/spl/spl.php Thu May 6 18:55:25 2004
@@ -1,10 +1,36 @@
<?php
-/** Standard PHP Library
+/** \mainpage SPL - Standard PHP Library
+ *
+ * SPL - Standard PHP Library
*
* (c) Marcus Boerger, 2003 - 2004
*/
+/** Interface to override array access of objects.
+ */
+interface ArrayAccess
+{
+ /** \param $offset to modify
+ * \param $value new value
+ */
+ function offsetSet($offset, $value);
+
+ /** \param $offset to retrieve
+ * \return value at given offset
+ */
+ function offsetGet($offset);
+
+ /** \param $offset to delete
+ */
+ function offsetUnset($offset);
+
+ /** \param $offset to check
+ *\return whether the offset exists.
+ */
+ function offsetExists($offset);
+}
+
/** Abstract base interface that cannot be implemented alone. Instead it
* must be implemented by either IteratorAggregate or Iterator.
*
@@ -343,7 +369,7 @@
/** The recursive version of the CachingIterator.
*/
-class CachingRecursiveIterator extends CachingIterator implemnets RecursiveIterator
+class CachingRecursiveIterator extends CachingIterator implements RecursiveIterator
{
/** Construct an instance form a RecursiveIterator.
*
http://cvs.php.net/diff.php/php-src/ext/spl/examples/dba_dump.php?r1=1.5&r2=1.6&ty=u
Index: php-src/ext/spl/examples/dba_dump.php
diff -u php-src/ext/spl/examples/dba_dump.php:1.5
php-src/ext/spl/examples/dba_dump.php:1.6
--- php-src/ext/spl/examples/dba_dump.php:1.5 Thu Dec 4 14:39:46 2003
+++ php-src/ext/spl/examples/dba_dump.php Thu May 6 18:55:25 2004
@@ -25,7 +25,7 @@
}
require_once("dba_reader.inc");
-require_once("key_filter.inc");
+require_once("KeyFilter.inc");
$db = new DbaReader($argv[1], $argv[2]);
http://cvs.php.net/diff.php/php-src/ext/spl/examples/ini_groups.php?r1=1.2&r2=1.3&ty=u
Index: php-src/ext/spl/examples/ini_groups.php
diff -u php-src/ext/spl/examples/ini_groups.php:1.2
php-src/ext/spl/examples/ini_groups.php:1.3
--- php-src/ext/spl/examples/ini_groups.php:1.2 Thu Dec 4 14:39:46 2003
+++ php-src/ext/spl/examples/ini_groups.php Thu May 6 18:55:25 2004
@@ -9,7 +9,7 @@
*
* Note: configure with --enable-dba
*
- * (c) Marcus Boerger, 2003
+ * (c) Marcus Boerger, 2003 - 2004
*/
if ($argc < 2) {
@@ -25,50 +25,11 @@
}
require_once("dba_reader.inc");
-require_once("key_filter.inc");
+require_once("IniGroups.inc");
-/**
- * @brief Class to iterate all groups within an ini file.
- * @author Marcus Boerger
- * @version 1.0
- *
- * Using this class you can iterator over all groups of a ini file.
- *
- * This class uses a 'is-a' relation to key_filter 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 ini_groups extends key_filter
-{
- /**
- * Construct an ini file group iterator from a filename.
- *
- * @param file Ini file to open.
- */
- function __construct($file) {
- parent::__construct(new dba_reader($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);
- }
-}
-
-$it = new ini_groups($argv[1]);
+$it = new IniGroups($argv[1]);
if ($argc>2) {
- $it = new key_filter($it, $argv[2]);
+ $it = new KeyFilter($it, $argv[2]);
}
foreach($it as $group) {
http://cvs.php.net/co.php/php-src/ext/spl/examples/IniGroups.inc?r=1.1&p=1
Index: php-src/ext/spl/examples/IniGroups.inc
+++ php-src/ext/spl/examples/IniGroups.inc
<?php
require_once("KeyFilter.inc");
/**
* @brief Class to iterate all groups within an ini file.
* @author Marcus Boerger
* @version 1.0
*
* 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 dba_reader($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);
}
}
?>
http://cvs.php.net/co.php/php-src/ext/spl/examples/KeyFilter.inc?r=1.1&p=1
Index: php-src/ext/spl/examples/KeyFilter.inc
+++ php-src/ext/spl/examples/KeyFilter.inc
<?php
/**
* @brief Regular expression filter for string iterators
* @author Marcus Boerger
* @version 1.0
*
* 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 implements Iterator
{
protected $it;
protected $regex;
protected $key;
protected $curr;
/**
* 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) {
$this->it = $it;
$this->regex = $regex;
$this->fetch();
}
/**
* Rewind input iterator
*/
function rewind() {
$this->it->rewind();
}
/**
* Destruct the iterator.
*/
function __destruct() {
unset($this->it);
}
/**
* Fetch next element and store it.
*
* @return void
*/
protected function fetch() {
$this->key = false;
$this->curr = false;
while ($this->it->valid()) {
$key = $this->it->key();
if (ereg($this->regex, $key)) {
$this->key = $key;
$this->curr = $this->it->current();
return;
}
$this->it->next();
};
}
/**
* Move to next element
*
* @return void
*/
function next() {
$this->it->next();
$this->fetch();
}
/**
* @return Whether more elements are available
*/
function valid() {
return $this->key !== false;
}
/**
* @return The current key
*/
function key() {
return $this->key;
}
/**
* @return The current value
*/
function current() {
return $this->curr;
}
/**
* hidden __clone
*/
protected function __clone() {
// disallow clone
}
}
?>
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php