From 171d01dfcfacfa1e5dce74509dc3ac3fe9d4be22 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Wed, 28 Jul 2004 22:52:11 +0000 Subject: [PATCH] - Update examples --- ext/spl/examples/autoload.inc | 8 +++---- ext/spl/examples/dbareader.inc | 42 +++++++++++++++++++--------------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/ext/spl/examples/autoload.inc b/ext/spl/examples/autoload.inc index af4b931ff4..7fecfa5758 100755 --- a/ext/spl/examples/autoload.inc +++ b/ext/spl/examples/autoload.inc @@ -33,7 +33,10 @@ function __load_class($classname, $dir) */ function __autoload($classname) { $classname = strtolower($classname); - foreach(split(':', ini_get('include_path')) as $dir) + $inc = split(':', ini_get('include_path')); + $inc[] = '.'; + $inc[] = dirname($_SERVER['PATH_TRANSLATED']); + foreach($inc as $dir) { if (__load_class($classname, $dir)) { @@ -41,10 +44,7 @@ function __autoload($classname) { return; } } - if (!__load_class($classname, '.')) - if (!__load_class($classname, dirname($_SERVER['PATH_TRANSLATED']))) fprintf(STDERR, 'Class not found ('.$classname.")\n"); - return; } ?> \ No newline at end of file diff --git a/ext/spl/examples/dbareader.inc b/ext/spl/examples/dbareader.inc index 02b0840317..cd27ad7baa 100755 --- a/ext/spl/examples/dbareader.inc +++ b/ext/spl/examples/dbareader.inc @@ -28,32 +28,24 @@ class DbaReader implements Iterator * @param handler Handler to use for database access. */ function __construct($file, $handler) { - $this->db = dba_open($file, 'r', $handler); + if (!$this->db = dba_open($file, 'r', $handler)) { + throw new exception('Could not open file ' . $file); + } } /** * Close database. */ function __destruct() { - if ($this->db) { - dba_close($this->db); - } + dba_close($this->db); } /** * Rewind to first element. */ function rewind() { - if ($this->db) { - $this->key = dba_firstkey($this->db); - } - } - - /** - * @return Current data. - */ - function current() { - return $this->val; + $this->key = dba_firstkey($this->db); + fetch_data(); } /** @@ -62,14 +54,26 @@ class DbaReader implements Iterator * @return void */ function next() { - if ($this->db) { - $this->key = dba_nextkey($this->db); - if ($this->key !== false) { - $this->val = dba_fetch($this->key, $this->db); - } + $this->key = dba_nextkey($this->db); + 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. */ -- 2.40.0