From e2c4b65b46d11aba4c2292fd90eae5a65f5bab33 Mon Sep 17 00:00:00 2001 From: Bart Jaskulski <bjaskulski@protonmail.com> Date: Mon, 16 Oct 2023 22:00:01 +0200 Subject: [PATCH] refactor: add deprecations Signed-off-by: Bart Jaskulski <bjaskulski@protonmail.com> --- src/Renderer/Renderer.php | 2 ++ src/Resolver/DirResolver.php | 13 +++++++++++-- src/Resolver/Resolver.php | 6 +++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/Renderer/Renderer.php b/src/Renderer/Renderer.php index e106044..926a418 100644 --- a/src/Renderer/Renderer.php +++ b/src/Renderer/Renderer.php @@ -13,6 +13,8 @@ interface Renderer * Set the resolver used to map a template name to a resource the renderer may consume. * * @param Resolver $resolver + * + * @deprecated Setting resolver doesn't concern renderer. Pass it with setter method, or by constructor, but it shouldn't be included in interface declaration. */ public function set_resolver(Resolver $resolver); diff --git a/src/Resolver/DirResolver.php b/src/Resolver/DirResolver.php index 69f1b6c..098f164 100644 --- a/src/Resolver/DirResolver.php +++ b/src/Resolver/DirResolver.php @@ -7,7 +7,7 @@ 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 + * Class should resolve name by serching in provided dir. * * @package WPDesk\View\Resolver */ @@ -21,10 +21,14 @@ class DirResolver implements Resolver /** * Base path for templates ie. subdir * - * @param $dir + * @param string $dir */ public function __construct($dir) { + if ( empty( $dir ) ) { + trigger_error( "DirResolver requires templates' base path.", E_USER_DEPRECATED ); + } + $this->dir = $dir; } @@ -39,6 +43,11 @@ class DirResolver implements Resolver public function resolve($name, Renderer $renderer = null) { $dir = rtrim($this->dir, '/'); + + if ( empty( $dir ) || $dir === '/' ) { + throw new CanNotResolve("Denying to search in system's root path."); + } + $fullName = $dir . '/' . $name; if (file_exists($fullName)) { return $fullName; diff --git a/src/Resolver/Resolver.php b/src/Resolver/Resolver.php index ac50959..3bc575a 100644 --- a/src/Resolver/Resolver.php +++ b/src/Resolver/Resolver.php @@ -5,14 +5,14 @@ namespace WPDesk\View\Resolver; use WPDesk\View\Renderer\Renderer; /** - * Can resolve template name to a file + * Can resolve template name to a file. */ interface Resolver { /** - * Resolve a template/pattern name to a resource the renderer can consume + * Resolve a template/pattern name to a resource the renderer can consume. * * @param string $name - * @param null|Resolver $renderer + * @param null|Resolver $renderer Deprecated. * * @return string */ -- GitLab