class JLoader

Static class to handle loading of libraries.

Methods

static  void
discover( string $classPrefix, string $parentPath, boolean $force = true, boolean $recurse = false)

Method to discover classes of a given type in a given path.

static  array
getClassList()

Method to get the list of registered classes and their respective file paths for the autoloader.

static  array
getDeprecatedAliases()

Method to get the list of deprecated class aliases.

static  array
getNamespaces( string $type = 'psr0')

Method to get the list of registered namespaces.

static  boolean
import( string $key, string $base = null)

Loads a class from specified directories.

static  boolean
load( string $class)

Load the file for a class.

static  void
register( string $class, string $path, boolean $force = true)

Directly register a class to the autoload list.

static  void
registerPrefix( string $prefix, string $path, boolean $reset = false, boolean $prepend = false)

Register a class prefix with lookup path. This will allow developers to register library packages with different class prefixes to the system autoloader. More than one lookup path may be registered for the same class prefix, but if this method is called with the reset flag set to true then any registered lookups for the given prefix will be overwritten with the current lookup path. When loaded, prefix paths are searched in a "last in, first out" order.

static  boolean
registerAlias( string $alias, string $original, string|boolean $version = false)

Offers the ability for "just in time" usage of class_alias().

static  void
registerNamespace( string $namespace, string $path, boolean $reset = false, boolean $prepend = false, string $type = 'psr0')

Register a namespace to the autoloader. When loaded, namespace paths are searched in a "last in, first out" order.

static  void
setup( boolean $enablePsr = true, boolean $enablePrefixes = true, boolean $enableClasses = true)

Method to setup the autoloaders for the Joomla Platform.

static  boolean
loadByPsr4( string $class)

Method to autoload classes that are namespaced to the PSR-4 standard.

static  boolean
loadByPsr0( string $class)

Method to autoload classes that are namespaced to the PSR-0 standard.

static  boolean
loadByAlias( string $class)

Method to autoload classes that have been aliased using the registerAlias method.

static  void
applyAliasFor( string $class)

Applies a class alias for an already loaded class, if a class alias was created for it.

static  boolean
_autoload( string $class)

Autoload a class based on name.

Details

static void discover( string $classPrefix, string $parentPath, boolean $force = true, boolean $recurse = false)

Method to discover classes of a given type in a given path.

Parameters

string $classPrefix The class name prefix to use for discovery.
string $parentPath Full path to the parent folder for the classes to discover.
boolean $force True to overwrite the autoload path value for the class if it already exists.
boolean $recurse Recurse through all child directories as well as the parent path.

Return Value

void

static array getClassList()

Method to get the list of registered classes and their respective file paths for the autoloader.

Return Value

array The array of class => path values for the autoloader.

static array getDeprecatedAliases()

Method to get the list of deprecated class aliases.

Return Value

array An associative array with deprecated class alias data.

static array getNamespaces( string $type = 'psr0')

Method to get the list of registered namespaces.

Parameters

string $type Defines the type of namespace, can be prs0 or psr4.

Return Value

array The array of namespace => path values for the autoloader.

static boolean import( string $key, string $base = null)

Loads a class from specified directories.

Parameters

string $key The class name to look for (dot notation).
string $base Search this directory for the class.

Return Value

boolean True on success.

static boolean load( string $class)

Load the file for a class.

Parameters

string $class The class to be loaded.

Return Value

boolean True on success

static void register( string $class, string $path, boolean $force = true)

Directly register a class to the autoload list.

Parameters

string $class The class name to register.
string $path Full path to the file that holds the class to register.
boolean $force True to overwrite the autoload path value for the class if it already exists.

Return Value

void

static void registerPrefix( string $prefix, string $path, boolean $reset = false, boolean $prepend = false)

Register a class prefix with lookup path. This will allow developers to register library packages with different class prefixes to the system autoloader. More than one lookup path may be registered for the same class prefix, but if this method is called with the reset flag set to true then any registered lookups for the given prefix will be overwritten with the current lookup path. When loaded, prefix paths are searched in a "last in, first out" order.

Parameters

string $prefix The class prefix to register.
string $path Absolute file path to the library root where classes with the given prefix can be found.
boolean $reset True to reset the prefix with only the given lookup path.
boolean $prepend If true, push the path to the beginning of the prefix lookup paths array.

Return Value

void

Exceptions

RuntimeException

static boolean registerAlias( string $alias, string $original, string|boolean $version = false)

Offers the ability for "just in time" usage of class_alias().

You cannot overwrite an existing alias.

Parameters

string $alias The alias name to register.
string $original The original class to alias.
string|boolean $version The version in which the alias will no longer be present.

Return Value

boolean True if registration was successful. False if the alias already exists.

static void registerNamespace( string $namespace, string $path, boolean $reset = false, boolean $prepend = false, string $type = 'psr0')

Register a namespace to the autoloader. When loaded, namespace paths are searched in a "last in, first out" order.

Parameters

string $namespace A case sensitive Namespace to register.
string $path A case sensitive absolute file path to the library root where classes of the given namespace can be found.
boolean $reset True to reset the namespace with only the given lookup path.
boolean $prepend If true, push the path to the beginning of the namespace lookup paths array.
string $type Defines the type of namespace, can be prs0 or psr4.

Return Value

void

Exceptions

RuntimeException

static void setup( boolean $enablePsr = true, boolean $enablePrefixes = true, boolean $enableClasses = true)

Method to setup the autoloaders for the Joomla Platform.

Since the SPL autoloaders are called in a queue we will add our explicit class-registration based loader first, then fall back on the autoloader based on conventions. This will allow people to register a class in a specific location and override platform libraries as was previously possible.

Parameters

boolean $enablePsr True to enable autoloading based on PSR-0.
boolean $enablePrefixes True to enable prefix based class loading (needed to auto load the Joomla core).
boolean $enableClasses True to enable class map based class loading (needed to auto load the Joomla core).

Return Value

void

static boolean loadByPsr4( string $class)

Method to autoload classes that are namespaced to the PSR-4 standard.

Parameters

string $class The fully qualified class name to autoload.

Return Value

boolean True on success, false otherwise.

static boolean loadByPsr0( string $class)

Method to autoload classes that are namespaced to the PSR-0 standard.

Parameters

string $class The fully qualified class name to autoload.

Return Value

boolean True on success, false otherwise.

static boolean loadByAlias( string $class)

Method to autoload classes that have been aliased using the registerAlias method.

Parameters

string $class The fully qualified class name to autoload.

Return Value

boolean True on success, false otherwise.

static void applyAliasFor( string $class)

Applies a class alias for an already loaded class, if a class alias was created for it.

Parameters

string $class We'll look for and register aliases for this (real) class name

Return Value

void

static boolean _autoload( string $class)

Autoload a class based on name.

Parameters

string $class The class to be loaded.

Return Value

boolean True if the class was loaded, false otherwise.