classVersionRegistry
final class VersionRegistry
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
Names the releases each dialect ships resources for.
The record lives in resources/version.php; every path in it is relative to the resource directory and may not climb out of it.
Methods§
public function __construct(private string|null $directory = null)Parameters
$directory | string|null | Resource directory, the package's own by default |
public function resolve(string $dialect, string|null $version = null): SqlVersionAnswers the resources of one release, the dialect's default when none is named.
Parameters
$dialect | string | Dialect to look in |
$version | string|null | Release tag, or null for the default |
Returns
SqlVersion The release and its resourcesThrows
RuntimeException When the dialect or the release is not shippedTest cases 4
Called from 3
- method-call SqlParser\MySql\MySqlVersion::resolve() packages/sql-parser/src/MySql/MySqlVersion.php:42
- method-call SqlParser\PostgreSql\PostgreSqlVersion::resolve() packages/sql-parser/src/PostgreSql/PostgreSqlVersion.php:42
- method-call SqlParser\Sqlite\SqliteVersion::resolve() packages/sql-parser/src/Sqlite/SqliteVersion.php:42
Calls 4
- method-call VersionRegistry::entries() line 38
- new
RuntimeExceptionline 41 - new SqlVersion line 49
- method-call VersionRegistry::path() line 49
public function names(string $dialect): list<string>Answers every release tag of a dialect, oldest first.
Parameters
$dialect | string | Dialect to enumerate |
Returns
list<string> Release tagsThrows
RuntimeException When the dialect is not shippedTest cases 2
Called from 3
- method-call SqlParser\MySql\MySqlParser::versions() packages/sql-parser/src/MySql/MySqlParser.php:119
- method-call SqlParser\PostgreSql\PostgreSqlParser::versions() packages/sql-parser/src/PostgreSql/PostgreSqlParser.php:115
- method-call SqlParser\Sqlite\SqliteParser::versions() packages/sql-parser/src/Sqlite/SqliteParser.php:120
Calls 3
- method-call VersionRegistry::entries() line 63
- new
RuntimeExceptionline 65 - function-call
array_keysline 68
public function entries(): array<string, array{default: string, versions: array<string, array{table: string, keywords: string}>}>Reads the record of shipped releases.
Returns
array<string, array{default: string, versions: array<string, array{table: string, keywords: string}>}> Releases by dialectTest cases 1
Called from 2
Calls 1
- method-call VersionRegistry::directory() line 79
public function path(string $relative): stringResolves a recorded path against the resource directory.
Parameters
$relative | string | Path as the record spells it |
Returns
string Absolute pathThrows
RuntimeException When the path is absolute, empty or climbs out of the directoryTest cases 3
Called from 1
Calls 4
- function-call
str_starts_withline 95 - function-call
str_containsline 95 - new
RuntimeExceptionline 96 - method-call VersionRegistry::directory() line 99
public function directory(): stringAnswers the directory the resources live in.
Returns
string Absolute pathTest cases 1
Called from 2
Calls 1
- function-call
dirnameline 109
Private surface 1§
Implementation details, listed for orientation only.
private string|null $directory = nullTest cases 28§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 11
VersionRegistryTest::testDirectorycallsVersionRegistryTest::testEntriescallsVersionRegistryTest::testNamescallsVersionRegistryTest::testNamesRejectsAnUnknownDialectcallsVersionRegistryTest::testPathcallsVersionRegistryTest::testPathRejectsAnAbsolutePathcallsVersionRegistryTest::testPathRejectsAPathThatClimbsOutcallsVersionRegistryTest::testResolveAcceptsAnExplicitReleasecallsVersionRegistryTest::testResolveDefaultsToTheNewestReleasecallsVersionRegistryTest::testResolveRejectsAnUnknownDialectcallsVersionRegistryTest::testResolveRejectsAnUnknownReleasecalls
Other tests reaching this symbol 17
KeywordTableTestcallsMySqlLexerTestcallsNumberScannerTestcallsOperatorScannerTestcallsQuotedScannerTestcallsScanTestcallsTriviaScannerTestcallsVariableScannerTestcallsWordScannerTestcallsMySqlParserTestcallsMySqlVersionTestcallsKeywordTableTestcallsPostgreSqlParserTestcallsPostgreSqlVersionTestcallsKeywordTableTestcallsSqliteParserTestcallsSqliteVersionTestcalls
Relations§
Instantiated in 9
- new SqlParser\MySql\MySqlParser::__construct() packages/sql-parser/src/MySql/MySqlParser.php:62
- new SqlParser\MySql\MySqlParser::versions() packages/sql-parser/src/MySql/MySqlParser.php:119
- new SqlParser\MySql\MySqlVersion::resolve() packages/sql-parser/src/MySql/MySqlVersion.php:40
- new SqlParser\PostgreSql\PostgreSqlParser::__construct() packages/sql-parser/src/PostgreSql/PostgreSqlParser.php:58
- new SqlParser\PostgreSql\PostgreSqlParser::versions() packages/sql-parser/src/PostgreSql/PostgreSqlParser.php:115
- new SqlParser\PostgreSql\PostgreSqlVersion::resolve() packages/sql-parser/src/PostgreSql/PostgreSqlVersion.php:40
- new SqlParser\Sqlite\SqliteParser::__construct() packages/sql-parser/src/Sqlite/SqliteParser.php:59
- new SqlParser\Sqlite\SqliteParser::versions() packages/sql-parser/src/Sqlite/SqliteParser.php:120
- new SqlParser\Sqlite\SqliteVersion::resolve() packages/sql-parser/src/Sqlite/SqliteVersion.php:40
Method calls 6
- method-call SqlParser\MySql\MySqlParser::versions() packages/sql-parser/src/MySql/MySqlParser.php:119
- method-call SqlParser\MySql\MySqlVersion::resolve() packages/sql-parser/src/MySql/MySqlVersion.php:42
- method-call SqlParser\PostgreSql\PostgreSqlParser::versions() packages/sql-parser/src/PostgreSql/PostgreSqlParser.php:115
- method-call SqlParser\PostgreSql\PostgreSqlVersion::resolve() packages/sql-parser/src/PostgreSql/PostgreSqlVersion.php:42
- method-call SqlParser\Sqlite\SqliteParser::versions() packages/sql-parser/src/Sqlite/SqliteParser.php:120
- method-call SqlParser\Sqlite\SqliteVersion::resolve() packages/sql-parser/src/Sqlite/SqliteVersion.php:42
Type declarations 6
- type SqlParser\MySql\MySqlParser packages/sql-parser/src/MySql/MySqlParser.php:62
- type SqlParser\MySql\MySqlVersion packages/sql-parser/src/MySql/MySqlVersion.php:40
- type SqlParser\PostgreSql\PostgreSqlParser packages/sql-parser/src/PostgreSql/PostgreSqlParser.php:58
- type SqlParser\PostgreSql\PostgreSqlVersion packages/sql-parser/src/PostgreSql/PostgreSqlVersion.php:40
- type SqlParser\Sqlite\SqliteParser packages/sql-parser/src/Sqlite/SqliteParser.php:59
- type SqlParser\Sqlite\SqliteVersion packages/sql-parser/src/Sqlite/SqliteVersion.php:40