Permalink
Browse files

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!
  • Loading branch information...
1 parent d72788c commit ec2e229a0f313b741f4cca3c3caeab7be01732fe moodler committed Dec 7, 2002
Showing with 24 additions and 30 deletions.
  1. +0 −30 lib/class.moodlelib.php
  2. +24 −0 lib/makeclass.php
View
@@ -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 }");
-
-?>
View
@@ -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 }");
+}
+

0 comments on commit ec2e229

Please sign in to comment.