note 76258 deleted from language.oop5.autoload by felipe
| From: | felipe@php.net | Date: | Mon, 24 Mar 2008 22:41:42 +0000 |
| Subject: | note 76258 deleted from language.oop5.autoload by felipe | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-137503@lists.php.net to get a copy of this message | ||
Note Submitter: alexandre at nospam dot gaigalas dot net
----
Here is a simple version of __autoload for creating custom classes on the fly, extending pre-defined
(using a constant) base classes:
<?php
define('CUSTOM_CLASS_TYPES', 'Application|Database|XML');
function __autoload($req) {
if (preg_match('#(.*)('.CUSTOM_CLASS_TYPES.'){1}$#', $req , $fragment))
eval('class '.$req.' extends base'.$fragment[2].' { public $_name =
\''.$fragment[1].'\'; public $_type = \''.$fragment[2].'\';
} ');
}
/* Base Classes */
class baseApplication {}
class baseDatabase {}
class baseXML{}
/* Calling a custom Class */
$foo = new projectApplication;
print_r($foo);
?>