note 76068 deleted from language.oop5.autoload by felipe
| From: | felipe@php.net | Date: | Mon, 24 Mar 2008 22:41:50 +0000 |
| Subject: | note 76068 deleted from language.oop5.autoload by felipe | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-137505@lists.php.net to get a copy of this message | ||
Note Submitter: dave
----
a static classlist can speed up the autoload in a arbitrary folder structure.
each file holds one class with filename = classname + .php
<?php
define ("CLASS_PATH", "path to your classes");
function __autoload($className) {
static $classes = null;
if (!$classes) $classes = loadClasses(CLASS_PATH);
require_once($classes[$className]);
}
function loadClasses($path) {
$classes = array();
$h = @opendir($path);
if ($h) while ($file = @readdir($h)) {
if ($file=='.' || $file=='..') continue;
if(is_dir($path.$file)) $classes = array_merge($classes, loadClasses($path.$file."/"));
else $classes[array_shift(explode(".", $file))] = $path.$file;
}
return $classes;
}
?>