ParserRegistry
in package
Registry for parser implementations.
Handles parser discovery, registration, and instantiation. Provides methods to select the appropriate parser for a language.
Tags
Table of Contents
Constants
- DEFAULT_PARSER = 'regex'
Properties
- $externalLoader : ExternalParserLoader|null
- $parsers : array<string, ParserInterface>
Methods
- __construct() : mixed
- Create a new parser registry with default parsers.
- get() : ParserInterface|null
- Get a parser by type.
- getAll() : array<string, ParserInterface>
- Get all registered parsers.
- getAvailable() : array<string, ParserInterface>
- Get all available parsers (those that can run on this system).
- getDefaultType() : string
- Get the default parser type.
- getParserForLanguage() : ParserInterface
- Get a parser for a language, with fallback to default.
- getParserInfo() : array<string, array{type: string, name: string, available: bool, message: string}>
- Get parser information for UI display.
- has() : bool
- Check if a parser type is registered.
- register() : void
- Register a parser.
- resolveParserType() : string
- Resolve the parser type for a language.
- resolveParserTypeFromRow() : string
- Resolve parser type from a database row.
- registerDefaultParsers() : void
- Register the default built-in parsers.
- registerExternalParsers() : void
- Register external parsers from the configuration file.
Constants
DEFAULT_PARSER
private
string
DEFAULT_PARSER
= 'regex'
Default parser type when none specified
Properties
$externalLoader
private
ExternalParserLoader|null
$externalLoader
Loader for external parser configs
$parsers
private
array<string, ParserInterface>
$parsers
= []
Registered parsers by type
Methods
__construct()
Create a new parser registry with default parsers.
public
__construct([ExternalParserLoader|null $externalLoader = null ]) : mixed
Parameters
- $externalLoader : ExternalParserLoader|null = null
-
Optional loader for external parsers
get()
Get a parser by type.
public
get(string $type) : ParserInterface|null
Parameters
- $type : string
-
Parser type identifier
Return values
ParserInterface|null —Parser instance or null if not found
getAll()
Get all registered parsers.
public
getAll() : array<string, ParserInterface>
Return values
array<string, ParserInterface> —All parsers indexed by type
getAvailable()
Get all available parsers (those that can run on this system).
public
getAvailable() : array<string, ParserInterface>
Return values
array<string, ParserInterface> —Available parsers indexed by type
getDefaultType()
Get the default parser type.
public
getDefaultType() : string
Return values
string —Default parser type
getParserForLanguage()
Get a parser for a language, with fallback to default.
public
getParserForLanguage(Language $language) : ParserInterface
Parameters
- $language : Language
-
Language entity
Return values
ParserInterface —Parser instance (never null)
getParserInfo()
Get parser information for UI display.
public
getParserInfo() : array<string, array{type: string, name: string, available: bool, message: string}>
Return values
array<string, array{type: string, name: string, available: bool, message: string}>has()
Check if a parser type is registered.
public
has(string $type) : bool
Parameters
- $type : string
-
Parser type identifier
Return values
bool —True if parser is registered
register()
Register a parser.
public
register(ParserInterface $parser) : void
Parameters
- $parser : ParserInterface
-
Parser to register
resolveParserType()
Resolve the parser type for a language.
public
resolveParserType(Language $language) : string
Determines which parser to use based on language settings. Supports both explicit parser type and legacy detection.
Parameters
- $language : Language
-
Language entity
Return values
string —Resolved parser type
resolveParserTypeFromRow()
Resolve parser type from a database row.
public
resolveParserTypeFromRow(array<string, mixed> $row) : string
Parameters
- $row : array<string, mixed>
-
Database row with Lg* prefixed columns
Return values
string —Resolved parser type
registerDefaultParsers()
Register the default built-in parsers.
private
registerDefaultParsers() : void
registerExternalParsers()
Register external parsers from the configuration file.
private
registerExternalParsers() : void
External parsers are loaded from config/parsers.php. This method creates ExternalParser instances for each configured parser.