classDefinitionReader
final class DefinitionReader
Reads the definition files that the configuration's patterns match.
Files are read in path order; item and source IDs must be unique across them, and Markdown links to other items must point to the files that define them.
Methods§
public function read(
string $directory,
list<string> $patterns,
array<string, mixed> $markdown,
): DefinitionsReads every matched definition file.
Parameters
$directory | string | The configuration directory the patterns resolve against |
$patterns | list<string> | Glob patterns of definition files |
$markdown | array<string, mixed> | The markdown options |
Returns
Definitions The items, sources and filesThrows
InvalidInputException When a pattern matches nothing, a definition is invalid or an ID repeatsJsonException When a document cannot be convertedParseException When a YAML definition is malformedTest cases 18
DefinitionReaderTest::testReadKeepsItemsWithoutSourcecallsDefinitionReaderTest::testReadKeepsMarkdownLinksOfEveryFilecallsDefinitionReaderTest::testReadListsEachFileOncecallsDefinitionReaderTest::testReadOrdersFilesByPathcallsDefinitionReaderTest::testReadPassesMarkdownOptionscallsDefinitionReaderTest::testReadRejectsDefinitionWithoutSourceDeclarationcallsDefinitionReaderTest::testReadRejectsDuplicateItemIdAcrossFilescallsDefinitionReaderTest::testReadRejectsDuplicateItemIdInOneFilecallsDefinitionReaderTest::testReadRejectsDuplicateSourceIdcallsDefinitionReaderTest::testReadRejectsInvalidItemcallsDefinitionReaderTest::testReadRejectsMalformedYamlcallsDefinitionReaderTest::testReadRejectsMarkdownLinkToWrongFilecallsDefinitionReaderTest::testReadRejectsMarkdownWithoutOptionscallsDefinitionReaderTest::testReadRejectsPatternWithoutMatchescallsDefinitionReaderTest::testReadRequiresOneDefinitioncallsDefinitionReaderTest::testReadResolvesMarkdownLinksAcrossFilescallsDefinitionReaderTest::testReadResolvesPatternsAgainstDirectorycallsDefinitionReaderTest::testReadReturnsItemsSourcesAndFilescalls
Called from 1
Calls 15
- function-call
globline 39 - new InvalidInputException line 41
- function-call
array_pushline 43 - function-call
array_valuesline 45 - function-call
array_uniqueline 45 - function-call
sortline 46 - new DocumentReader line 54
- static-call DocumentReader::mapping() line 55
- method-call DocumentReader::read() line 55
- static-call Fields::keys() line 57
- function-call
array_key_existsline 58 - static-call Source::from() line 61
- static-call Fields::sequence() line 65
- static-call Item::from() line 66
- new Definitions line 73
Test cases 31§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 18
DefinitionReaderTest::testReadKeepsItemsWithoutSourcecallsDefinitionReaderTest::testReadKeepsMarkdownLinksOfEveryFilecallsDefinitionReaderTest::testReadListsEachFileOncecallsDefinitionReaderTest::testReadOrdersFilesByPathcallsDefinitionReaderTest::testReadPassesMarkdownOptionscallsDefinitionReaderTest::testReadRejectsDefinitionWithoutSourceDeclarationcallsDefinitionReaderTest::testReadRejectsDuplicateItemIdAcrossFilescallsDefinitionReaderTest::testReadRejectsDuplicateItemIdInOneFilecallsDefinitionReaderTest::testReadRejectsDuplicateSourceIdcallsDefinitionReaderTest::testReadRejectsInvalidItemcallsDefinitionReaderTest::testReadRejectsMalformedYamlcallsDefinitionReaderTest::testReadRejectsMarkdownLinkToWrongFilecallsDefinitionReaderTest::testReadRejectsMarkdownWithoutOptionscallsDefinitionReaderTest::testReadRejectsPatternWithoutMatchescallsDefinitionReaderTest::testReadRequiresOneDefinitioncallsDefinitionReaderTest::testReadResolvesMarkdownLinksAcrossFilescallsDefinitionReaderTest::testReadResolvesPatternsAgainstDirectorycallsDefinitionReaderTest::testReadReturnsItemsSourcesAndFilescalls
Other tests reaching this symbol 13
LoaderTestcallsReferenceTestcallsMarkdownDocumentTestcallsSchemaValidatorTestcallsApplicationTestcallsCommandHandlerTestcallsCommandLineTestcallsExecutorTestcallsFormatterTestcallsAnalyzerTestcallsCoverageTestcallsSnapshotTestcallsVerifierTestcalls