PSR-0 autoloading eg. for PEAR or Horde classes

This commit is contained in:
Ralf Becker 2013-10-22 08:25:55 +00:00
parent ab4873553b
commit c8f1e75165

View File

@ -1438,7 +1438,7 @@ if (ini_get('register_globals'))
unregister_globals(); unregister_globals();
} }
if (!function_exists('lang')) // setup declares an own version if (!function_exists('lang') || defined('NO_LANG')) // setup declares an own version
{ {
/** /**
* function to handle multilanguage support * function to handle multilanguage support
@ -1493,7 +1493,7 @@ function try_lang($key,$vars=null)
function __autoload($class) function __autoload($class)
{ {
// fixing warnings generated by php 5.3.8 is_a($obj) trying to autoload huge strings // fixing warnings generated by php 5.3.8 is_a($obj) trying to autoload huge strings
if (strlen($class) > 64) return; if (strlen($class) > 64 || strpos($class, '.') !== false) return;
if ($class == 'etemplate_new') $class = 'etemplate'; if ($class == 'etemplate_new') $class = 'etemplate';
@ -1508,9 +1508,9 @@ function __autoload($class)
// eGW api classes containing multiple classes in on file, eg. egw_exception // eGW api classes containing multiple classes in on file, eg. egw_exception
isset($components[0]) && file_exists($file = EGW_API_INC.'/class.'.$app.'_'.$components[0].'.inc.php') || isset($components[0]) && file_exists($file = EGW_API_INC.'/class.'.$app.'_'.$components[0].'.inc.php') ||
// eGW eTemplate classes using the old naming schema, eg. etemplate // eGW eTemplate classes using the old naming schema, eg. etemplate
file_exists($file = EGW_INCLUDE_ROOT.'/etemplate/inc/class.'.$class.'.inc.php'))// || file_exists($file = EGW_INCLUDE_ROOT.'/etemplate/inc/class.'.$class.'.inc.php') ||
// classes of the current application using the old naming schema // include PEAR and PSR0 classes from include_path
// file_exists($file = EGW_INCLUDE_ROOT.'/'.$GLOBALS['egw_info']['flags']['currentapp'].'/inc/class.'.$class.'.inc.php')) !isset($GLOBALS['egw_info']['apps'][$app]) && @include_once($file = strtr($class, array('_'=>'/','\\'=>'/')).'.php'))
{ {
//error_log("autoloaded class $class from $file"); //error_log("autoloaded class $class from $file");
include_once($file); include_once($file);