My site is pretty large and I do not use PHP Classes, I do not understand OO good enough yet to re-write my site to use them however I would really like to use the
__autoload($class_name) feature that classes use. I rely a lot on functions, I have different function files,
forums.inc.php
blogs.inc.php
user.inc.php
photos.inc.php
general.inc.php
All these files are just functions specific to a certain part of the site, except general.inc.php would have functions that need to be on ever page.
Now is there anyway I could use autoload or make something similar that would load these function files? I once thought about doing it based on the URL, like if the URL had the word forums in it, I would load the forums function file but this would not always work as ever file related to forums does not have the word forum in there URL.
Am I pretty much out of options until I learn to code OO good enough to put all my functions into classes?
//example of the autoload
function __autoload($class_name){
include('classes/' . $class_name . '.class.php');
}
$time = new time();
$time->fn1();
I don’t think you can, to be honest, not in a straightforward way. In any case, wouldn’t it be way nicer to use utility classes? There’s nothing to the OOP, look at this:
Static Helper/Utility classes that group together related functionality are simple to put together, just declare your functions as
static:Now you can use
__autoload. You don’t have to instantiate those classes to use any of their static functions, and it makes your code more readable (if slightly more verbose). I always find it more satisfying to do something like:instead of:
If needed, you can also declare a private constructor in your utility classes to prevent them from being instantiated, to emphasize that their ‘just a bunch of related functions’:
To call a static function from another function within the same class you would do so using the
selfkeyword (which references the same class, and not object or class instance):