aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-02-09 22:29:17 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-02-09 22:29:17 +0000
commit7126862be4c40dfd24f01a4e68aba5de9b9488fa (patch)
treea73d3f9ec2f62048ec6e0f2b236ff2d2b6ec9d03
parentd02164662eda11c0170bc4023fc33d35c6c456f8 (diff)
downloadelgg-7126862be4c40dfd24f01a4e68aba5de9b9488fa.tar.gz
elgg-7126862be4c40dfd24f01a4e68aba5de9b9488fa.tar.bz2
Fixes #1503, fixes #1474: Library files are loaded using a hard-coded list to better deal with removed files. Also, ~4% performance increase per page load on my server!
git-svn-id: http://code.elgg.org/elgg/trunk@3927 36083f99-b078-4883-b0ff-0f9b5a30f544
-rw-r--r--engine/lib/elgglib.php26
-rw-r--r--engine/start.php35
2 files changed, 18 insertions, 43 deletions
diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php
index e6da00969..705852ac9 100644
--- a/engine/lib/elgglib.php
+++ b/engine/lib/elgglib.php
@@ -1279,32 +1279,6 @@ function friendly_title($title) {
*/
/**
- * Recursive function designed to load library files on start
- * (NB: this does not include plugins.)
- *
- * @param string $directory Full path to the directory to start with
- * @param string $file_exceptions A list of filenames (with no paths) you don't ever want to include
- * @param string $file_list A list of files that you know already you want to include
- * @return array Array of full filenames
- */
-function get_library_files($directory, $file_exceptions = array(), $file_list = array()) {
- $extensions_allowed = array('.php');
- /*if (is_file($directory) && !in_array($directory,$file_exceptions)) {
- $file_list[] = $directory;
- } else */
- if ($handle = opendir($directory)) {
- while ($file = readdir($handle)) {
- if (in_array(strrchr($file, '.'), $extensions_allowed) && !in_array($file,$file_exceptions)) {
- $file_list[] = $directory . "/" . $file;
- //$file_list = get_library_files($directory . "/" . $file, $file_exceptions, $file_list);
- }
- }
- }
-
- return $file_list;
-}
-
-/**
* Ensures that the installation has all the correct files, that PHP is configured correctly, and so on.
* Leaves appropriate messages in the error register if not.
*
diff --git a/engine/start.php b/engine/start.php
index 8d5d4fac5..ff14b378b 100644
--- a/engine/start.php
+++ b/engine/start.php
@@ -116,31 +116,32 @@ if ($sanitised = sanitised()) {
throw new InstallationException("Elgg could not load the main Elgg database library.");
}
- /**
- * Load the remaining libraries from /lib/ in alphabetical order,
- * except for a few exceptions
- */
if (!include_once(dirname(__FILE__) . "/lib/actions.php")) {
throw new InstallationException("Elgg could not load the Actions library");
}
- // We don't want to load or reload these files
- $file_exceptions = array(
- '.', '..', '.DS_Store', 'Thumbs.db', '.svn',
- 'CVS', 'cvs', 'settings.php', 'settings.example.php',
- 'languages.php', 'exceptions.php', 'elgglib.php', 'access.php',
- 'database.php', 'actions.php', 'sessions.php'
- );
-
- // Get the list of files to include, and alphabetically sort them
- $files = get_library_files(dirname(__FILE__) . "/lib",$file_exceptions);
- asort($files);
-
// Get config
global $CONFIG;
+ // load the rest of the library files from engine/lib/
+ $lib_files = array(
+ 'activity.php', 'admin.php', 'annotations.php', 'api.php',
+ 'cache.php', 'calendar.php', 'configuration.php', 'cron.php',
+ 'entities.php', 'export.php', 'extender.php', 'filestore.php',
+ 'group.php', 'input.php', 'install.php', 'location.php', 'mb_wrapper.php',
+ 'memcache.php', 'metadata.php', 'metastrings.php', 'notification.php',
+ 'objects.php', 'opendd.php', 'pagehandler.php', 'pageowner.php', 'pam.php',
+ 'plugins.php', 'query.php', 'relationships.php', 'river2.php', 'sites.php',
+ 'social.php', 'statistics.php', 'system_log.php', 'tags.php',
+ 'usersettings.php', 'users.php', 'version.php', 'widgets.php', 'xml.php',
+ 'xml-rpc.php'
+ );
+
+ $lib_dir = dirname(__FILE__) . '/lib/';
+
// Include them
- foreach($files as $file) {
+ foreach($lib_files as $file) {
+ $file = $lib_dir . $file;
elgg_log("Loading $file...");
if (!include_once($file)) {
throw new InstallationException("Could not load {$file}");