一个php类 Autoloader

php autoloader:

This is a class for PHP that keeps the user from having to manually include classes by automatically including them on-the-fly as needed.

This simple autoloader class is easy-to-use and features caching so it does not have to scan the file system for a given class more than once (unless the file is moved).

Installation

Simply include the class and configure it in your top-level/application config:

<?php


require(APP_PATH . 'classes/Autoloader.class.php');


Autoloader::setCacheFilePath(APP_PATH . 'tmp/class_path_cache.txt');


Autoloader::excludeFolderNamesMatchingRegex('/^CVS|\..*$/');


Autoloader::setClassPaths(array(


APP_PATH . 'classes/',


APP_PATH . 'models/'


));


spl_autoload_register(array('Autoloader', 'loadClass'));

The above example assumes there is an APP_PATH constant that points to the root of the application where you might have a classes and tmp directory, among other things.

How It Works

It scans all paths recursively, in the order in which they were given until the class is found. The class is loaded, and the path to the class is saved to the cache file. Next time the class ised, the process starts over for needed, its path is pulled directly from the cache file. If the class was moved or the cache file was remov that class.

By default, it looks for files with exact name as the class with the suffix .class.php. For example, ifMyClassName is requested, it looks for MyClassName.class.php. The suffix can be changed by callingsetClassFileSuffix():

Autoloader::setClassFileSuffix('-my_suffix.php');