00001 <?php
00012 class LazyLoad
00013 {
00014 var $classname;
00015 var $filepath;
00016
00017 var $loaded;
00018 var $object;
00019
00026 function LazyLoad($classname, $filepath)
00027 {
00028 $this->classname = $classname;
00029 $this->filepath = $filepath;
00030
00031 $this->loaded = false;
00032 $this->object = null;
00033 }
00034
00035 function __call($name, $args, &$ret)
00036 {
00037 if(!$this->loaded) {
00038 require_once($this->filepath);
00039 $this->object = new $this->classname();
00040 $this->loaded = true;
00041 }
00042
00043 if(!method_exists($this->object, $name)) {
00044 trigger_error("Method {$this->classname}::{$name}() does not exist");
00045 }
00046
00047
00048 $ret = call_user_func_array(array(&$this->object, $name), $args);
00049 return true;
00050 }
00051 }
00052
00053 overload('LazyLoad');
00054
00055 ?>