summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xext/spl/examples/autoload.inc8
-rwxr-xr-xext/spl/examples/dbareader.inc42
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,15 +54,27 @@ 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.
*/
function valid() {