MediaWiki  1.29.2
AutoloadGenerator Class Reference

Accepts a list of files and directories to search for php files and generates $wgAutoloadLocalClasses or $wgAutoloadClasses lines for all detected classes. More...

Collaboration diagram for AutoloadGenerator:

Public Member Functions

 __construct ( $basepath, $flags=[])
 
 forceClassPath ( $fqcn, $inputPath)
 Force a class to be autoloaded from a specific path, regardless of where or if it was detected. More...
 
 getAutoload ( $commandName='AutoloadGenerator')
 Returns all known classes as a string, which can be used to put into a target file (e.g. More...
 
 getTargetFileinfo ()
 Returns the filename of the extension.json of skin.json, if there's any, or otherwise the path to the autoload.php file in an array as the "filename" key and with the type (AutoloadGenerator::FILETYPE_JSON or AutoloadGenerator::FILETYPE_PHP) of the file as the "type" key. More...
 
 initMediaWikiDefault ()
 Initialize the source files and directories which are used for the MediaWiki default autoloader in {mw-base-dir}/autoload.php including: More...
 
 readDir ( $dir)
 
 readFile ( $inputPath)
 

Public Attributes

const FILETYPE_JSON = 'json'
 
const FILETYPE_PHP = 'php'
 

Protected Member Functions

 generateJsonAutoload ( $filename)
 Updates the AutoloadClasses field at the given filename. More...
 
 generatePHPAutoload ( $commandName, $filename)
 Generates a PHP file setting up autoload information. More...
 

Static Protected Member Functions

static normalizePathSeparator ( $path)
 Ensure that Unix-style path separators ("/") are used in the path. More...
 

Protected Attributes

string $basepath
 Root path of the project being scanned for classes. More...
 
array $classes = []
 Map of file shortpath to list of FQCN detected within file. More...
 
ClassCollector $collector
 Helper class extracts class names from php files. More...
 
array $overrides = []
 Map of FQCN to relative path(from self::$basepath) More...
 
string $variableName = 'wgAutoloadClasses'
 The global variable to write output to. More...
 

Detailed Description

Accepts a list of files and directories to search for php files and generates $wgAutoloadLocalClasses or $wgAutoloadClasses lines for all detected classes.

These lines are written out to an autoload.php file in the projects provided basedir.

Usage:

$gen = new AutoloadGenerator( __DIR__ );
$gen->readDir( __DIR__ . '/includes' );
$gen->readFile( __DIR__ . '/foo.php' )
$gen->getAutoload();

Definition at line 16 of file AutoloadGenerator.php.

Constructor & Destructor Documentation

◆ __construct()

AutoloadGenerator::__construct (   $basepath,
  $flags = [] 
)
Parameters
string$basepathRoot path of the project being scanned for classes
array | string$flagslocal - If this flag is set $wgAutoloadLocalClasses will be build instead of $wgAutoloadClasses

Definition at line 52 of file AutoloadGenerator.php.

References $basepath, $flags, and normalizePathSeparator().

Member Function Documentation

◆ forceClassPath()

AutoloadGenerator::forceClassPath (   $fqcn,
  $inputPath 
)

Force a class to be autoloaded from a specific path, regardless of where or if it was detected.

Parameters
string$fqcnFQCN to force the location of
string$inputPathFull path to the file containing the class
Exceptions
Exception

Definition at line 71 of file AutoloadGenerator.php.

References $path, and normalizePathSeparator().

◆ generateJsonAutoload()

AutoloadGenerator::generateJsonAutoload (   $filename)
protected

Updates the AutoloadClasses field at the given filename.

Parameters
string$filenameFilename of JSON extension/skin registration file
Returns
string Updated Json of the file given as the $filename parameter

Definition at line 132 of file AutoloadGenerator.php.

References $path, FormatJson\ALL_OK, as, classes, FormatJson\decode(), and FormatJson\encode().

Referenced by getAutoload().

◆ generatePHPAutoload()

AutoloadGenerator::generatePHPAutoload (   $commandName,
  $filename 
)
protected

Generates a PHP file setting up autoload information.

Parameters
{string}$commandName Command name to include in comment
{string}$filename of PHP file to put autoload information in.
Returns
string

Definition at line 165 of file AutoloadGenerator.php.

References $content, $output, $path, as, classes, global, and php.

Referenced by getAutoload().

◆ getAutoload()

AutoloadGenerator::getAutoload (   $commandName = 'AutoloadGenerator')

Returns all known classes as a string, which can be used to put into a target file (e.g.

extension.json, skin.json or autoload.php)

Parameters
string$commandNameValue used in file comment to direct developers towards the appropriate way to update the autoload.
Returns
string

Definition at line 226 of file AutoloadGenerator.php.

References $fileinfo, generateJsonAutoload(), generatePHPAutoload(), and getTargetFileinfo().

◆ getTargetFileinfo()

AutoloadGenerator::getTargetFileinfo ( )

Returns the filename of the extension.json of skin.json, if there's any, or otherwise the path to the autoload.php file in an array as the "filename" key and with the type (AutoloadGenerator::FILETYPE_JSON or AutoloadGenerator::FILETYPE_PHP) of the file as the "type" key.

Returns
array

Definition at line 248 of file AutoloadGenerator.php.

References $fileinfo, FILETYPE_JSON, and FILETYPE_PHP.

Referenced by getAutoload().

◆ initMediaWikiDefault()

AutoloadGenerator::initMediaWikiDefault ( )

Initialize the source files and directories which are used for the MediaWiki default autoloader in {mw-base-dir}/autoload.php including:

  • includes/
  • languages/
  • maintenance/
  • mw-config/
  • /*.php

Definition at line 287 of file AutoloadGenerator.php.

References $dir, as, and readDir().

◆ normalizePathSeparator()

static AutoloadGenerator::normalizePathSeparator (   $path)
staticprotected

Ensure that Unix-style path separators ("/") are used in the path.

Parameters
string$path
Returns
string

Definition at line 274 of file AutoloadGenerator.php.

References $path.

Referenced by __construct(), forceClassPath(), and readFile().

◆ readDir()

AutoloadGenerator::readDir (   $dir)
Parameters
string$dirPath to a directory to recursively search for php files with either .php or .inc extensions

Definition at line 110 of file AutoloadGenerator.php.

References $dir, $ext, $path, as, and readFile().

Referenced by initMediaWikiDefault().

◆ readFile()

AutoloadGenerator::readFile (   $inputPath)
Parameters
string$inputPathPath to a php file to find classes within
Exceptions
Exception

Definition at line 88 of file AutoloadGenerator.php.

References classes, and normalizePathSeparator().

Referenced by readDir().

Member Data Documentation

◆ $basepath

string AutoloadGenerator::$basepath
protected

Root path of the project being scanned for classes.

Definition at line 23 of file AutoloadGenerator.php.

Referenced by __construct().

◆ $classes

array AutoloadGenerator::$classes = []
protected

Map of file shortpath to list of FQCN detected within file.

Definition at line 33 of file AutoloadGenerator.php.

◆ $collector

ClassCollector AutoloadGenerator::$collector
protected

Helper class extracts class names from php files.

Definition at line 28 of file AutoloadGenerator.php.

◆ $overrides

array AutoloadGenerator::$overrides = []
protected

Map of FQCN to relative path(from self::$basepath)

Definition at line 43 of file AutoloadGenerator.php.

◆ $variableName

string AutoloadGenerator::$variableName = 'wgAutoloadClasses'
protected

The global variable to write output to.

Definition at line 38 of file AutoloadGenerator.php.

◆ FILETYPE_JSON

const AutoloadGenerator::FILETYPE_JSON = 'json'

Definition at line 17 of file AutoloadGenerator.php.

Referenced by getTargetFileinfo().

◆ FILETYPE_PHP

const AutoloadGenerator::FILETYPE_PHP = 'php'

Definition at line 18 of file AutoloadGenerator.php.

Referenced by getTargetFileinfo().


The documentation for this class was generated from the following file: