Ik heb een probleem met meerdere autoloaders. De autoloader voor mijn zelf ontwikkelde applicatie ziet er als volgt uit:
En de autoloader voor DOMPDF (een library waar ik gebruik van maak), ziet er als volgt uit:
Deze werken niet goed samen. Als ik DOMPDF include op een pagina, kunnen m'n normale classes zoals DB connection etc niet meer gevonden worden. Ik heb al geprobeerd de autoload functie om te bouwen, hij ziet er namelijk origineel zo uit:
En dat werkte al helemaal voor geen meter. Ziet iemand wat er fout gaat?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| function __autoload($className) { // Class directories $directoryArray = array( SYS_PATH.'sysdata/classes/' ); // Static mods $directoryArray[] = SYS_PATH.'sysdata/mods/user/classes/'; // Loop through extension keys to autoload their respective classes if(array_key_exists('mods', $GLOBALS['ISAEUS_CONF_VARS'])) { foreach($GLOBALS['ISAEUS_CONF_VARS']['mods']['loaded'] as $mod) { $directoryArray[] = SYS_PATH.'sysdata/mods/'.strtolower($mod).'/classes/'; } } // Loop through directories and try and load the class foreach($directoryArray as $directory) { if(file_exists($directory.'class.'.$className.'.php')) { require_once($directory.'class.'.$className.'.php'); return; } } } |
En de autoloader voor DOMPDF (een library waar ik gebruik van maak), ziet er als volgt uit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| function DOMPDF_autoload($class) { $filename = mb_strtolower($class) . ".cls.php"; require_once(DOMPDF_INC_DIR . "/$filename"); } if ( !function_exists("__autoload") ) { /** * Default __autoload() function * * @param string $class */ function __autoload($class) { DOMPDF_autoload($class); } } else { spl_autoload_register('DOMPDF_autoload'); } |
Deze werken niet goed samen. Als ik DOMPDF include op een pagina, kunnen m'n normale classes zoals DB connection etc niet meer gevonden worden. Ik heb al geprobeerd de autoload functie om te bouwen, hij ziet er namelijk origineel zo uit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| function DOMPDF_autoload($class) { $filename = mb_strtolower($class) . ".cls.php"; require_once(DOMPDF_INC_DIR . "/$filename"); } if ( !function_exists("__autoload") ) { /** * Default __autoload() function * * @param string $class */ function __autoload($class) { DOMPDF_autoload($class); } } |
En dat werkte al helemaal voor geen meter. Ziet iemand wat er fout gaat?