General purpose function to produce a class based on a library

of simple functions.  Can be used to provide a class interface
to Moodle functions.

Thanks to Greg Barnett!
This commit is contained in:
moodler
2002-12-07 04:31:23 +00:00
parent d72788c346
commit ec2e229a0f
2 changed files with 24 additions and 30 deletions
-30
View File
@@ -1,30 +0,0 @@
<?PHP // $Id$
// This file is not currently used within Moodle - see moodlelib.php
//
// It exists to provide a more object-oriented interface to some of
// Moodle's main library functions, for use by external programs.
//
// This code is based on code from Greg Barnett for Crown College
$moodlelibfile = file("moodlelib.php");
$append = false;
$moodlelib = "";
foreach ($moodlelibfile as $line) {
if (!$append) {
if (substr($line, 0, 5) == "<?PHP") {
$append = true;
}
} else {
if (substr($line, 0, 2) == "?>") {
break;
}
$moodlelib .= $line;
}
}
eval ("class moodlelib { $moodlelib }");
?>
+24
View File
@@ -0,0 +1,24 @@
<?PHP // $Id$
// This file is currently optional within Moodle - see config-dist.php
//
// It exists to provide a more object-oriented interface to some of
// Moodle's main library functions, for use by external programs.
function makeClassFromFile($file, $classname) {
# sanity checks
assert('is_file($file)');
assert('!class_exists($classname)');
# Load the file into an array, strip out php tags at beginning and end,
# This assumes that the php start and end tags are each on one line at the
# beginning and end of the file, and the rest of the file consists only of
# comments and functions.
$functions = file($file);
$functions = array_slice($functions, 1, -1);
$functions = join('', $functions);
eval ("class $classname { $functions }");
}