Skip to content

Phalcon autoload

NOTE

All classes are prefixed with Phalcon

Autoload\Exception

Source on GitHub

  • Namespace

    • Phalcon\Autoload
  • Uses

  • Extends

    \Exception

  • Implements

Exceptions thrown in Phalcon\Autoload will use this class

Autoload\Loader

Source on GitHub

  • Namespace

    • Phalcon\Autoload
  • Uses

    • Phalcon\Events\AbstractEventsAware
  • Extends

    AbstractEventsAware

  • Implements

The Phalcon Autoloader provides an easy way to automatically load classes (namespaced or not) as well as files. It also features extension loading, allowing the user to autoload files with different extensions than .php.

Properties

/**
 * @var string|null
 */
protected $checkedPath;

/**
 * @var array
 */
protected $classes;

/**
 * @var array
 */
protected $debug;

/**
 * @var array
 */
protected $directories;

/**
 * @var array
 */
protected $extensions;

/**
 * @var string|callable
 */
protected $fileCheckingCallback = is_file;

/**
 * @var array
 */
protected $files;

/**
 * @var string|null
 */
protected $foundPath;

/**
 * @var bool
 */
protected $isDebug = false;

/**
 * @var bool
 */
protected $isRegistered = false;

/**
 * @var array
 */
protected $namespaces;

Methods

public function __construct( bool $isDebug = bool );
Loader constructor.

public function addClass( string $name, string $file ): Loader;
Adds a class to the internal collection for the mapping

public function addDirectory( string $directory ): Loader;
Adds a directory for the loaded files

public function addExtension( string $extension ): Loader;
Adds an extension for the loaded files

public function addFile( string $file ): Loader;
Adds a file to be added to the loader

public function addNamespace( string $name, mixed $directories, bool $prepend = bool ): Loader;

public function autoload( string $className ): bool;
Autoloads the registered classes

public function getCheckedPath(): string | null;
Get the path the loader is checking for a path

public function getClasses(): array;
Returns the class-map currently registered in the autoloader

public function getDebug(): array;
Returns debug information collected

public function getDirectories(): array;
Returns the directories currently registered in the autoloader

public function getExtensions(): array;
Returns the file extensions registered in the loader

public function getFiles(): array;
Returns the files currently registered in the autoloader

public function getFoundPath(): string | null;
Get the path when a class was found

public function getNamespaces(): array;
Returns the namespaces currently registered in the autoloader

public function isRegistered(): bool;
returns isRegister

public function loadFiles(): void;
Checks if a file exists and then adds the file by doing virtual require

public function register( bool $prepend = bool ): Loader;
Register the autoload method

public function setClasses( array $classes, bool $merge = bool ): Loader;
Register classes and their locations

public function setDirectories( array $directories, bool $merge = bool ): Loader;
Register directories in which "not found" classes could be found

public function setExtensions( array $extensions, bool $merge = bool ): Loader;
Sets an array of file extensions that the loader must try in each attempt to locate the file

public function setFileCheckingCallback( mixed $method = null ): Loader;
Sets the file check callback.

// Default behavior.
$loader->setFileCheckingCallback("is_file");

// Faster than `is_file()`, but implies some issues if
// the file is removed from the filesystem.
$loader->setFileCheckingCallback("stream_resolve_include_path");

// Do not check file existence.
$loader->setFileCheckingCallback(null);

public function setFiles( array $files, bool $merge = bool ): Loader;
Registers files that are "non-classes" hence need a "require". This is very useful for including files that only have functions

public function setNamespaces( array $namespaces, bool $merge = bool ): Loader;
Register namespaces and their related directories

public function unregister(): Loader;
Unregister the autoload method

protected function requireFile( string $file ): bool;
If the file exists, require it and return true; false otherwise