I’m new to classes, so sorry if this is a wicked noob question.
JMC is my main class. Other classes are named like JMC_files or JMC_array. I want to use autoload. Does the autoload function go inside my main class or outside of it? So for a visual, should I do this:
class JMC {
function __autoload($className) {
include_once($className.'.php');
}
protected function foo() { }
}
class JMC_files extends JMC (){
}
or this:
function __autoload($className) {
include_once($className.'.php');
}
class JMC {
protected function foo() { }
}
class JMC_files extends JMC (){
}
__autoload()is the name of a magic function that is automatically called by default when you attempt to reference a class that doesn’t yet exist in userland. It’s a function, not a class method, so you define it like this:If you like, you may set your own autoload handler (can be a function or a class method) instead, by using
spl_autoload_register(). For example, if you want to give your mainJMCclass a staticautoload()method that handles autoloading of class files, you would do something like this:Where you want to place your autoload function depends on you. Your main
JMCclass sounds like a reasonable place for it; my framework’s autoload method lives in the main class too.