public static createForInvalidIncludeStatementInData ( $include, string $file ) : TypeError | ||
$file | string | |
return | TypeError |
/** * @inheritdoc */ public function process(ParserInterface $parser, string $file, array $data) : array { if (false === array_key_exists('include', $data)) { throw InvalidArgumentExceptionFactory::createForNoIncludeStatementInData($file); } $include = $data['include']; unset($data['include']); if (null === $include) { return $data; } if (false === is_array($include)) { throw TypeErrorFactory::createForInvalidIncludeStatementInData($include, $file); } foreach ($include as $includeFile) { if (false === is_string($includeFile)) { throw TypeErrorFactory::createForInvalidIncludedFilesInData($includeFile, $file); } if (0 === strlen($includeFile)) { throw InvalidArgumentExceptionFactory::createForEmptyIncludedFileInData($file); } $filePathToInclude = $this->fileLocator->locate($includeFile, dirname($file)); $fileToIncludeData = $parser->parse($filePathToInclude); if (array_key_exists('include', $fileToIncludeData)) { $fileToIncludeData = $this->process($parser, $file, $fileToIncludeData); } $data = $this->dataMerger->mergeInclude($data, $fileToIncludeData); } return $data; }