Hi all.
Does anyone have a good autoloader script for namespace classes ?
Namespace is identical to the file structure.
ok, noted the above is probably a bad post, so to extend:
I have gone trhough many samples from goolge, one i have come across is the following:
spl_autoload_register(function ($className) {
# Usually I would just concatenate directly to $file variable below
# this is just for easy viewing
$ds = DIRECTORY_SEPARATOR;
$dir = __DIR__;
// replace namespace separator with directory separator (prolly not required)
$className = strtr($className, '\\', $ds);
// get full name of file containing the required class
$file = "{$dir}{$ds}{$classname}.php";
// get file if it is readable
if (is_readable($file))
require_once $file;
});
Which seems fine - if you are calling the files from the same, or below folder structure.
My folder structure mimicks that of my namespace structure as per PSR-0
So my question:
How can this be adopted to be used globally?
I assume you've read this: http://phpmaster.com/autoloading-and-the-psr-0-standard/
Sorry if it doesn't address your question. It's not something I've been looking at. My oop skills are woefully underdeveloped.
@diafol
Many thanks.
So from the link i have opted for, what i am asuming, the easier option:
file will be called autoLoader.php
and added to the .ini include PATH to load in.
<?php
// autoload functions only
// loaded in order
#!! IMPORTANT !! -> Database connection load
function autoloadDataBase($className){
$filename = 'classLib/dataBase/' . $className . '.php';
if(is_readable($filename)){
include $filename;
}
}
function autoloadCRUD($className){
$filename = "classLib/CRUD/" . $className .'.php';
if(is_readable($filename)){
include $filename;
}
}
function autoloadRSS($className){
$filename = "classLib/RSS/" . $className .'.php';
if(is_readable($filename)){
include $filename;
}
}
spl_autoload_register("autoloadDataBase");
spl_autoload_register("autoloadCRUD");
spl_autoload_register("autoloadRSS");
?>
I am guessing there are many ways to tidy this up, if anyone can suggest i am open to suggestions :)
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.