Skip to content

Commit

Permalink
Issue #71: PSR-0 support is complete.
Browse files Browse the repository at this point in the history
A default autoloader has been added.
  • Loading branch information
technosophos committed May 25, 2012
1 parent 06f31fb commit 0f1e595
Showing 1 changed file with 46 additions and 31 deletions.
77 changes: 46 additions & 31 deletions src/qp.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,43 +16,58 @@
* ?>
* @endcode
*
* If no autoloader is currently operating, this will attempt to
* require the entire QueryPath library.
* If no autoloader is currently operating, this will use
* QueryPath's default autoloader **unless**
* QP_NO_AUTOLOADER is defined, in which case all of the
* files will be statically required in.
*/

// This is sort of a last ditch attempt to load QueryPath if no
// autoloader is used.
if (!class_exists('\QueryPath\QueryPath')) {
define('QP_NO_AUTOLOADER', TRUE);

// This is all (and only) the required classes for QueryPath.
// Extensions are not loaded automatically.
require __DIR__ . '/QueryPath/Exception.php';
require __DIR__ . '/QueryPath/ParseException.php';
require __DIR__ . '/QueryPath/IOException.php';
require __DIR__ . '/QueryPath/CSS/ParseException.php';
require __DIR__ . '/QueryPath/CSS/NotImplementedException.php';
require __DIR__ . '/QueryPath/CSS/EventHandler.php';
require __DIR__ . '/QueryPath/CSS/SimpleSelector.php';
require __DIR__ . '/QueryPath/CSS/Selector.php';
require __DIR__ . '/QueryPath/CSS/Traverser.php';
require __DIR__ . '/QueryPath/CSS/DOMTraverser/PseudoClass.php';
// require __DIR__ . '/QueryPath/CSS/DOMTraverser/PseudoElement.php';
require __DIR__ . '/QueryPath/CSS/DOMTraverser/Util.php';
require __DIR__ . '/QueryPath/CSS/DOMTraverser.php';
require __DIR__ . '/QueryPath/CSS/Token.php';
require __DIR__ . '/QueryPath/CSS/InputStream.php';
require __DIR__ . '/QueryPath/CSS/Scanner.php';
require __DIR__ . '/QueryPath/CSS/Parser.php';
require __DIR__ . '/QueryPath/CSS/QueryPathEventHandler.php';
require __DIR__ . '/QueryPath/Query.php';
require __DIR__ . '/QueryPath/Entities.php';
require __DIR__ . '/QueryPath/Extension.php';
require __DIR__ . '/QueryPath/ExtensionRegistry.php';
require __DIR__ . '/QueryPath/Options.php';
require __DIR__ . '/QueryPath/QueryPathIterator.php';
require __DIR__ . '/QueryPath/DOMQuery.php';
require __DIR__ . '/QueryPath.php';
// If classloaders are explicitly disabled, load everything.
if (defined('QP_NO_AUTOLOADER')) {
// This is all (and only) the required classes for QueryPath.
// Extensions are not loaded automatically.
require __DIR__ . '/QueryPath/Exception.php';
require __DIR__ . '/QueryPath/ParseException.php';
require __DIR__ . '/QueryPath/IOException.php';
require __DIR__ . '/QueryPath/CSS/ParseException.php';
require __DIR__ . '/QueryPath/CSS/NotImplementedException.php';
require __DIR__ . '/QueryPath/CSS/EventHandler.php';
require __DIR__ . '/QueryPath/CSS/SimpleSelector.php';
require __DIR__ . '/QueryPath/CSS/Selector.php';
require __DIR__ . '/QueryPath/CSS/Traverser.php';
require __DIR__ . '/QueryPath/CSS/DOMTraverser/PseudoClass.php';
// require __DIR__ . '/QueryPath/CSS/DOMTraverser/PseudoElement.php';
require __DIR__ . '/QueryPath/CSS/DOMTraverser/Util.php';
require __DIR__ . '/QueryPath/CSS/DOMTraverser.php';
require __DIR__ . '/QueryPath/CSS/Token.php';
require __DIR__ . '/QueryPath/CSS/InputStream.php';
require __DIR__ . '/QueryPath/CSS/Scanner.php';
require __DIR__ . '/QueryPath/CSS/Parser.php';
require __DIR__ . '/QueryPath/CSS/QueryPathEventHandler.php';
require __DIR__ . '/QueryPath/Query.php';
require __DIR__ . '/QueryPath/Entities.php';
require __DIR__ . '/QueryPath/Extension.php';
require __DIR__ . '/QueryPath/ExtensionRegistry.php';
require __DIR__ . '/QueryPath/Options.php';
require __DIR__ . '/QueryPath/QueryPathIterator.php';
require __DIR__ . '/QueryPath/DOMQuery.php';
require __DIR__ . '/QueryPath.php';
}
else {
spl_autoload_register(function ($klass) {
$parts = explode('\\', $klass);
if ($parts[0] == 'QueryPath') {
$path = __DIR__ . '/' . implode('/', $parts) . '.php';
if (file_exists($path)) {
require $path;
}
}
});
}
}
/** @addtogroup querypath_core Core API
* Core classes and functions for QueryPath.
Expand Down

0 comments on commit 0f1e595

Please sign in to comment.