From 4bf33c296e6a3effdeb3ce769b4f43765519983f Mon Sep 17 00:00:00 2001 From: dyszczo <krzysiek@inspirelabs.pl> Date: Sun, 23 Sep 2018 22:04:27 +0200 Subject: [PATCH] dir resolver implementation --- src/Resolver/DirResolver.php | 50 ++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/Resolver/DirResolver.php diff --git a/src/Resolver/DirResolver.php b/src/Resolver/DirResolver.php new file mode 100644 index 0000000..f4ab594 --- /dev/null +++ b/src/Resolver/DirResolver.php @@ -0,0 +1,50 @@ +<?php + +namespace WPDesk\View\Resolver; + + +use WPDesk\View\Renderer\Renderer; +use WPDesk\View\Resolver\Exception\CanNotResolve; + +/** + * Class should resolve name by serching in provided dir. If empty then current dir + * + * @package WPDesk\View\Resolver + */ +class DirResolver implements Resolver +{ + + /** @var string */ + private $dir; + + + /** + * Base path for templates ie. subdir + * + * @param $template_base_path + */ + public function __construct($dir) + { + $this->dir = $dir; + } + + /** + * Resolve name to full path + * + * @param string $name + * @param Renderer|null $renderer + * + * @return string + */ + public function resolve($name, Renderer $renderer = null) + { + $dir = rtrim($this->dir, '/'); + $fullName = $dir . '/' . $name . '.php'; + if (file_exists($fullName)) { + return $fullName; + } + + throw new CanNotResolve("Cannot resolve {$name}"); + } + +} -- GitLab