config = $config; $this->filesystem = $filesystem; $this->paths = $paths; } public function locate(string $resource): string { $file = $this->config->getAsciiContentPath($resource); // Disabled: if (null === $file) { return ''; } // Specified by user: if ($this->filesystem->exists($file)) { return $this->filesystem->readFromFileInfo(new SplFileInfo($file)); } // Embedded ASCII art: $embeddedFile = $this->filesystem->buildPath($this->paths->getInternalAsciiPath(), $file); if ($this->filesystem->exists($embeddedFile)) { return $this->filesystem->readFromFileInfo(new SplFileInfo($embeddedFile)); } // Error: return sprintf('ASCII file %s could not be found.', $file); } }