From bdc637ab65d0ad9d312927ba04e70ad9df8d7708 Mon Sep 17 00:00:00 2001 From: dyszczo <krzysztof@dyszczyk.pl> Date: Fri, 18 May 2018 16:29:00 +0200 Subject: [PATCH] renderer/resolver --- composer.json | 2 +- src/Renderer/LoadTemplatePlugin.php | 24 ++++++++++++++++++++++++ src/Renderer/Renderer.php | 27 +++++++++++++++++++++++++++ src/Resolver/Resolver.php | 18 ++++++++++++++++++ src/class-view.php | 19 ------------------- 5 files changed, 70 insertions(+), 20 deletions(-) create mode 100644 src/Renderer/LoadTemplatePlugin.php create mode 100644 src/Renderer/Renderer.php create mode 100644 src/Resolver/Resolver.php delete mode 100644 src/class-view.php diff --git a/composer.json b/composer.json index 7617b76..0baefc3 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,7 @@ "wimg/php-compatibility": "^8" }, "autoload": { - "classmap": ["src/"] + "psr-4": {"WPDesk\\View\\": "src/"} }, "autoload-dev": { }, diff --git a/src/Renderer/LoadTemplatePlugin.php b/src/Renderer/LoadTemplatePlugin.php new file mode 100644 index 0000000..6d5350a --- /dev/null +++ b/src/Renderer/LoadTemplatePlugin.php @@ -0,0 +1,24 @@ +<?php + +namespace WPDesk\View\Renderer; + +use WPDesk\View\Resolver\Resolver; + +/** + * Can render templates + */ +class LoadTemplatePlugin implements Renderer { + private $plugin; + + public function __construct($plugin) { + $this->plugin = $plugin; + } + + public function set_resolver( Resolver $resolver ) { + + } + + public function render( $template, $params ) { + return $this->plugin->load_template($template, '', $params); + } +} diff --git a/src/Renderer/Renderer.php b/src/Renderer/Renderer.php new file mode 100644 index 0000000..230e764 --- /dev/null +++ b/src/Renderer/Renderer.php @@ -0,0 +1,27 @@ +<?php + +namespace WPDesk\View\Renderer; + +use WPDesk\View\Resolver\Resolver; + +/** + * Can render templates + */ +interface Renderer { + /** + * Set the resolver used to map a template name to a resource the renderer may consume. + * + * @param Resolver $resolver + * + * @return Resolver + */ + public function set_resolver( Resolver $resolver ); + + /** + * @param string $template + * @param array $params + * + * @return string + */ + public function render( $template, $params ); +} diff --git a/src/Resolver/Resolver.php b/src/Resolver/Resolver.php new file mode 100644 index 0000000..291eae1 --- /dev/null +++ b/src/Resolver/Resolver.php @@ -0,0 +1,18 @@ +<?php + +namespace WPDesk\View\Resolver; + +/** + * Can resolve template name to a file + */ +interface Resolver { + /** + * Resolve a template/pattern name to a resource the renderer can consume + * + * @param string $name + * @param null|Resolver $renderer + * + * @return mixed + */ + public function resolve($name, Resolver $renderer = null); +} diff --git a/src/class-view.php b/src/class-view.php deleted file mode 100644 index 0e07659..0000000 --- a/src/class-view.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php - -if ( ! defined( 'ABSPATH' ) ) { - exit; -} // Exit if accessed directly - -/** - * Can render templates - */ -interface WPDesk_View { - /** - * @param string $template - * @param string $template_path - * @param array $template_params - * - * @return string - */ - public function load_template( $template, $template_path, $template_params ); -} -- GitLab