Revision: 25176
Updated Code
at March 22, 2010 20:41 by AmyStephen
Updated Code
<?php class TamkaAutoload { function loadApplicationClasses () { /*** nullify existing autoloads ***/ spl_autoload_register (null, false); /*** specify extensions that may be loaded ***/ spl_autoload_extensions('.php'); function TamkaLoader ($class) { /*** retrieve namespaces and folders from configuration ***/ $serverConfig = new TamkaServer; $namespaceArray = explode(",", $serverConfig->autoloadNamespaces); $autoloadFolderArray = explode(",", $serverConfig->autoloadFolders); /*** process each configuration name space ***/ for ($na = 0; $na < count($namespaceArray); $na++) { /*** remove name space value from class to find filename ***/ $classFilename = TamkaAutoLoad::extractFileName ($class, $namespaceArray[$na]); if ($classFilename == false) { /*** namespace not used for class prefix ***/ } else { /*** namespace matches ***/ for ($fa = 0; $fa < count($autoloadFolderArray); $fa++) { /*** namespace not used for class prefix ***/ $folderFile = TamkaAutoload::replaceSlashwithDirectorySeparator(TAMKA_BASE.trim($autoloadFolderArray[$fa]).DS.$classFilename); /*** require_once file, if exists, and exist ***/ $results = TamkaAutoLoad::requireFilename ($folderFile); if ($results == true) { $fa = count($autoloadFolderArray) + 1; $na = count($namespaceArray) + 1; } } } } } /*** register the new loader function ***/ spl_autoload_register('TamkaLoader'); /*** RELOAD the Joomla! Autoload ***/ spl_autoload_register('__autoload'); } function extractFileName ($class, $namespace) { if (substr($class, 0, strlen($namespace)) == $namespace) { return trim(substr($class, strlen($namespace), (strlen($class) - strlen($namespace)))).'.php'; } else { return false; } } function replaceSlashwithDirectorySeparator ($filename) { return str_replace (chr(47), DS, $filename ); } function requireFilename ($file) { if (file_exists($file)) { require_once $file; return true; } else { return false; } } }
Revision: 25175
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 22, 2010 20:37 by AmyStephen
Initial Code
<?php class TamkaAutoload { function loadApplicationClasses () { /*** nullify existing autoloads ***/ spl_autoload_register (null, false); /*** specify extensions that may be loaded ***/ spl_autoload_extensions('.php'); function TamkaLoader ($class) { /*** retrieve namespaces and folders from configuration ***/ $serverConfig = new TamkaServer; $namespaceArray = explode(",", $serverConfig->autoloadNamespaces); $autoloadFolderArray = explode(",", $serverConfig->autoloadFolders); /*** process each configuration name space ***/ for ($na = 0; $na < count($namespaceArray); $na++) { /*** remove name space value from class to find filename ***/ $classFilename = TamkaAutoLoad::extractFileName ($class, $namespaceArray[$na]); if ($classFilename == false) { /*** namespace not used for class prefix ***/ } else { /*** namespace matches ***/ for ($fa = 0; $fa < count($autoloadFolderArray); $fa++) { /*** namespace not used for class prefix ***/ $folderFile = TamkaAutoload::replaceSlashwithDirectorySeparator(TAMKA_BASE.trim($autoloadFolderArray[$fa]).DS.$classFilename); /*** require_once file, if exists, and exist ***/ $results = TamkaAutoLoad::requireFilename ($folderFile); if ($results == true) { $fa < count($folderArray) + 1; $na = count($namespaceArray) + 1; } } } } } /*** register the new loader function ***/ spl_autoload_register('TamkaLoader'); /*** RELOAD the Joomla! Autoload ***/ spl_autoload_register('__autoload'); } function extractFileName ($class, $namespace) { if (substr($class, 0, strlen($namespace)) == $namespace) { return trim(substr($class, strlen($namespace), (strlen($class) - strlen($namespace)))).'.php'; } else { return false; } } function replaceSlashwithDirectorySeparator ($filename) { return str_replace (chr(47), DS, $filename ); } function requireFilename ($file) { if (file_exists($file)) { require_once $file; return true; } else { return false; } } }
Initial URL
http://www.alltogetherasawhole.org/profiles/blogs/joomla-autoloader-using
Initial Description
Autoload for PHP that enables the definition of namespaces and folders in a list that is used in the spl_registered function for any number of unknown values. This specific function can be used with Joomla! 1.5 since it reload's Joomla!'s autoload class at conclusion.
Initial Title
PHP Autoloader with spl_autoload
Initial Tags
Initial Language
PHP