summaryrefslogtreecommitdiff
path: root/inc/load.php
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2010-01-31 19:02:14 +0100
committerAndreas Gohr <andi@splitbrain.org>2010-01-31 19:02:14 +0100
commit16905344219a6293705b71cd526fad3ba07b04eb (patch)
tree0fbb1eb7af4a90cb0cd569bb02f6d219ea790dd7 /inc/load.php
parentfcd3bb7cfe60027407e0af2ec83fafbf89758e9c (diff)
downloadrpg-16905344219a6293705b71cd526fad3ba07b04eb.tar.gz
rpg-16905344219a6293705b71cd526fad3ba07b04eb.tar.bz2
first attempt to centralize all include loading
Classes are loaded throug PHP5's class autoloader, all other includes are just loaded by default. This skips a lot of require_once calls. Parser and Plugin stuff isn't handled by the class loader yet.
Diffstat (limited to 'inc/load.php')
-rw-r--r--inc/load.php98
1 files changed, 98 insertions, 0 deletions
diff --git a/inc/load.php b/inc/load.php
new file mode 100644
index 000000000..9d305e3a9
--- /dev/null
+++ b/inc/load.php
@@ -0,0 +1,98 @@
+<?php
+/**
+ * Load all internal libraries and setup class autoloader
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+
+// setup class autoloader
+spl_autoload_register('load_autoload');
+
+// require all the common libraries
+// for a e few of these order does matter
+require_once(DOKU_INC.'inc/DifferenceEngine.php');
+require_once(DOKU_INC.'inc/EmailAddressValidator.php');
+require_once(DOKU_INC.'inc/SimplePie.php');
+require_once(DOKU_INC.'inc/FeedParser.php');
+require_once(DOKU_INC.'inc/HTTPClient.php');
+require_once(DOKU_INC.'inc/IXR_Library.php');
+require_once(DOKU_INC.'inc/JSON.php');
+require_once(DOKU_INC.'inc/JpegMeta.php');
+require_once(DOKU_INC.'inc/TarLib.class.php');
+require_once(DOKU_INC.'inc/ZipLib.class.php');
+require_once(DOKU_INC.'inc/adLDAP.php');
+require_once(DOKU_INC.'inc/blowfish.php');
+require_once(DOKU_INC.'inc/feedcreator.class.php');
+require_once(DOKU_INC.'inc/geshi.php');
+require_once(DOKU_INC.'inc/actions.php');
+require_once(DOKU_INC.'inc/cache.php');
+require_once(DOKU_INC.'inc/changelog.php');
+require_once(DOKU_INC.'inc/cliopts.php');
+require_once(DOKU_INC.'inc/common.php');
+require_once(DOKU_INC.'inc/confutils.php');
+require_once(DOKU_INC.'inc/pluginutils.php');
+require_once(DOKU_INC.'inc/plugin.php');
+require_once(DOKU_INC.'inc/plugincontroller.class.php');
+require_once(DOKU_INC.'inc/events.php');
+require_once(DOKU_INC.'inc/form.php');
+require_once(DOKU_INC.'inc/fulltext.php');
+require_once(DOKU_INC.'inc/html.php');
+require_once(DOKU_INC.'inc/httputils.php');
+require_once(DOKU_INC.'inc/indexer.php');
+require_once(DOKU_INC.'inc/infoutils.php');
+require_once(DOKU_INC.'inc/init.php');
+require_once(DOKU_INC.'inc/io.php');
+require_once(DOKU_INC.'inc/load.php');
+require_once(DOKU_INC.'inc/mail.php');
+require_once(DOKU_INC.'inc/media.php');
+require_once(DOKU_INC.'inc/pageutils.php');
+require_once(DOKU_INC.'inc/parserutils.php');
+require_once(DOKU_INC.'inc/search.php');
+require_once(DOKU_INC.'inc/subscription.php');
+require_once(DOKU_INC.'inc/template.php');
+require_once(DOKU_INC.'inc/toolbar.php');
+require_once(DOKU_INC.'inc/utf8.php');
+require_once(DOKU_INC.'inc/auth.php');
+
+/**
+ * spl_autoload_register callback
+ *
+ * Contains a static list of DokuWiki's core classes and automatically
+ * requires their associated php files when an object is instantiated.
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ * @todo add generic loading of plugins here
+ */
+function load_autoload($name){
+ static $classes = null;
+ if(is_null($classes)) $classes = array(
+ 'DokuHTTPClient' => DOKU_INC.'inc/HTTPClient.php',
+ 'DokuEvent' => DOKU_INC.'inc/',
+ 'JSON' => DOKU_INC.'inc/JSON.php',
+ 'adLDAP' => DOKU_INC.'inc/adLDAP.php',
+ 'Diff' => DOKU_INC.'inc/DifferenceEngine.php',
+ 'UnifiedDiffFormatter' => DOKU_INC.'inc/DifferenceEngine.php',
+ 'TableDiffFormatter' => DOKU_INC.'inc/DifferenceEngine.php',
+ 'cache' => DOKU_INC.'inc/cache.php',
+ 'cache_parser' => DOKU_INC.'inc/cache.php',
+ 'cache_instructions' => DOKU_INC.'inc/cache.php',
+ 'cache_renderer' => DOKU_INC.'inc/cache.php',
+ 'Doku_Event' => DOKU_INC.'inc/events.php',
+ 'Doku_Event_Handler' => DOKU_INC.'inc/events.php',
+ 'Doku_Form' => DOKU_INC.'inc/form.php',
+ 'EmailAddressValidator' => DOKU_INC.'inc/EmailAddressValidator.php',
+ 'JpegMeta' => DOKU_INC.'inc/JpegMeta.php',
+ 'FeedParser' => DOKU_INC.'inc/FeedParser.php',
+ 'utf8_entity_decoder' => DOKU_INC.'inc/utf8.php',
+ 'IXR_Server' => DOKU_INC.'inc/IXR_Library.php',
+ 'IXR_Client' => DOKU_INC.'inc/IXR_Library.php',
+ 'Doku_Plugin_Controller'=> DOKU_INC.'inc/plugincontroller.class.php',
+ 'GeSHi' => DOKU_INC.'inc/geshi.php',
+ );
+
+ if(isset($classes[$name])){
+ require_once($classes[$name]);
+ return;
+ }
+}
+