Skip to content
Snippets Groups Projects
Verified Commit 4303e4c2 authored by Bartek Jaskulski's avatar Bartek Jaskulski
Browse files

Merge branch 'cleanup'

parents 073a5f66 3b238d22
No related branches found
No related tags found
No related merge requests found
5c1e330583a0d5eda6426db1c632784feff507e2
{
"name": "wpdesk/wp-view",
"license": "MIT",
"authors": [
{
"name": "Krzysiek",
"email": "krzysiek@wpdesk.pl"
}
],
"require": {
"php": ">=7.0"
},
"require-dev": {
"phpunit/phpunit": "<7",
"wp-coding-standards/wpcs": "^0.14.1",
"squizlabs/php_codesniffer": "^3.0.2",
"mockery/mockery": "*",
"10up/wp_mock": "*",
"wimg/php-compatibility": "^8"
},
"autoload": {
"psr-4": {"WPDesk\\View\\": "src/"}
},
"autoload-dev": {
},
"scripts": {
"phpcs": "phpcs",
"phpunit-unit": "phpunit --configuration phpunit-unit.xml --coverage-text --colors=never",
"phpunit-unit-fast": "phpunit --configuration phpunit-unit.xml --no-coverage",
"phpunit-integration": "phpunit --configuration phpunit-integration.xml --coverage-text --colors=never",
"phpunit-integration-fast": "phpunit --configuration phpunit-integration.xml --no-coverage"
}
"name": "wpdesk/wp-view",
"license": "MIT",
"authors": [
{
"name": "WP Desk",
"role": "Owner"
},
{
"name": "Krzysiek",
"email": "krzysiek@wpdesk.pl"
}
],
"require": {
"php": ">=7.0 | ^8"
},
"require-dev": {
"phpunit/phpunit": "<7",
"wpdesk/wp-code-sniffer": "^1",
"mockery/mockery": "*",
"10up/wp_mock": "*",
"wpdesk/phpstan-rules": "^1.1"
},
"autoload": {
"psr-4": {"WPDesk\\View\\": "src/"}
},
"scripts": {
"phpcs": "phpcs",
"phpunit-unit": "phpunit --configuration phpunit-unit.xml --coverage-text --colors=never",
"phpunit-unit-fast": "phpunit --configuration phpunit-unit.xml --no-coverage",
"phpunit-integration": "phpunit --configuration phpunit-integration.xml --coverage-text --colors=never",
"phpunit-integration-fast": "phpunit --configuration phpunit-integration.xml --no-coverage"
},
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true,
"phpstan/extension-installer": true
}
}
}
......@@ -13,6 +13,7 @@ use WPDesk\View\Resolver\WPThemeResolver;
* @package WPDesk\View
*/
class PluginViewBuilder {
/** @var string */
private $plugin_dir;
......@@ -62,9 +63,9 @@ class PluginViewBuilder {
*
* @return string Rendered template.
*/
public function loadTemplate( $name, $path = '.', $args = array() ) {
public function loadTemplate( $name, $path = '.', $args = [] ) {
$renderer = $this->createSimpleRenderer();
return $renderer->render( trailingslashit( $path ) . $name, $args );
}
}
\ No newline at end of file
}
......@@ -8,20 +8,20 @@ use WPDesk\View\Resolver\Resolver;
* Can render templates
*/
class LoadTemplatePlugin implements Renderer {
private $plugin;
private $path;
public function __construct($plugin, $path = '') {
public function __construct( $plugin, $path = '' ) {
$this->plugin = $plugin;
$this->path = $path;
$this->path = $path;
}
public function set_resolver( Resolver $resolver ) {
}
public function render($template, array $params = null) {
return $this->plugin->load_template($template, $this->path, $params);
public function render( $template, array $params = null ) {
return $this->plugin->load_template( $template, $this->path, $params );
}
}
......@@ -7,26 +7,26 @@ 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
*/
public function set_resolver(Resolver $resolver);
interface Renderer {
/**
* @param string $template
* @param array $params
*
* @return string
*/
public function render($template, array $params = null);
/**
* Set the resolver used to map a template name to a resource the renderer may consume.
*
* @param Resolver $resolver
*/
public function set_resolver( Resolver $resolver );
/**
* @param string $template
* @param array $params
*/
public function output_render($template, array $params = null);
/**
* @param string $template
* @param array $params
*
* @return string
*/
public function render( $template, array $params = null );
/**
* @param string $template
* @param array $params
*/
public function output_render( $template, array $params = null );
}
......@@ -7,50 +7,45 @@ use WPDesk\View\Resolver\Resolver;
/**
* Can render templates
*/
class SimplePhpRenderer implements Renderer
{
/** @var Resolver */
private $resolver;
public function __construct(Resolver $resolver)
{
$this->set_resolver($resolver);
}
/**
* @param Resolver $resolver
*
* @return void|Resolver
*/
public function set_resolver(Resolver $resolver)
{
$this->resolver = $resolver;
}
/**
* @param string $template
* @param array|null $params
*
* @return string
*/
public function render($template, array $params = null)
{
ob_start();
$this->output_render( $template, $params );
return ob_get_clean();
}
/**
* @param string $template
* @param array|null $params
*/
public function output_render($template, array $params = null)
{
if ($params !== null) {
extract($params, EXTR_SKIP);
}
include($this->resolver->resolve($template . '.php'));
}
class SimplePhpRenderer implements Renderer {
/** @var Resolver */
private $resolver;
public function __construct( Resolver $resolver ) {
$this->set_resolver( $resolver );
}
/**
* @param Resolver $resolver
*
* @return void|Resolver
*/
public function set_resolver( Resolver $resolver ) {
$this->resolver = $resolver;
}
/**
* @param string $template
* @param array|null $params
*
* @return string
*/
public function render( $template, array $params = null ) {
ob_start();
$this->output_render( $template, $params );
return ob_get_clean();
}
/**
* @param string $template
* @param array|null $params
*/
public function output_render( $template, array $params = null ) {
if ( $params !== null ) {
extract( $params, EXTR_SKIP );
}
include $this->resolver->resolve( $template . '.php' );
}
}
......@@ -2,7 +2,6 @@
namespace WPDesk\View\Resolver;
use WPDesk\View\Renderer\Renderer;
use WPDesk\View\Resolver\Exception\CanNotResolve;
......@@ -11,51 +10,47 @@ use WPDesk\View\Resolver\Exception\CanNotResolve;
*
* @package WPDesk\View\Resolver
*/
class ChainResolver implements Resolver
{
/** @var Resolver[] */
private $resolvers;
/**
* Warning: function with variadic input. Input should be list of Resolver instances.
*/
public function __construct()
{
$args = func_get_args();
foreach ($args as $resolver) {
$this->appendResolver($resolver);
}
}
/**
* Append resolver to the end of the list
*
* @param Resolver $resolver
*/
public function appendResolver( $resolver)
{
$this->resolvers[] = $resolver;
}
/**
* Resolve name to full path
*
* @param string $name
* @param Renderer|null $renderer
*
* @return string
*/
public function resolve($name, Renderer $renderer = null)
{
foreach ($this->resolvers as $resolver) {
try {
return $resolver->resolve($name);
} catch (CanNotResolve $e) {
// not interested
}
}
throw new CanNotResolve("Cannot resolve {$name}");
}
class ChainResolver implements Resolver {
/** @var Resolver[] */
private $resolvers;
/**
* Warning: function with variadic input. Input should be list of Resolver instances.
*/
public function __construct() {
$args = func_get_args();
foreach ( $args as $resolver ) {
$this->appendResolver( $resolver );
}
}
/**
* Append resolver to the end of the list
*
* @param Resolver $resolver
*/
public function appendResolver( $resolver ) {
$this->resolvers[] = $resolver;
}
/**
* Resolve name to full path
*
* @param string $name
* @param Renderer|null $renderer
*
* @return string
*/
public function resolve( $name, Renderer $renderer = null ) {
foreach ( $this->resolvers as $resolver ) {
try {
return $resolver->resolve( $name );
} catch ( CanNotResolve $e ) {
// not interested
}
}
throw new CanNotResolve( "Cannot resolve {$name}" );
}
}
......@@ -2,7 +2,6 @@
namespace WPDesk\View\Resolver;
use WPDesk\View\Renderer\Renderer;
use WPDesk\View\Resolver\Exception\CanNotResolve;
......@@ -11,40 +10,36 @@ use WPDesk\View\Resolver\Exception\CanNotResolve;
*
* @package WPDesk\View\Resolver
*/
class DirResolver implements Resolver
{
/** @var string */
private $dir;
/**
* Base path for templates ie. subdir
*
* @param $dir
*/
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;
if (file_exists($fullName)) {
return $fullName;
}
throw new CanNotResolve("Cannot resolve {$name}");
}
class DirResolver implements Resolver {
/** @var string */
private $dir;
/**
* Base path for templates ie. subdir
*
* @param $dir
*/
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;
if ( file_exists( $fullName ) ) {
return $fullName;
}
throw new CanNotResolve( "Cannot resolve {$name}" );
}
}
......@@ -3,8 +3,7 @@
namespace WPDesk\View\Resolver\Exception;
class CanNotResolve extends \RuntimeException {
class CanNotResolve extends \RuntimeException
{
}
\ No newline at end of file
}
......@@ -2,7 +2,6 @@
namespace WPDesk\View\Resolver;
use WPDesk\View\Renderer\Renderer;
use WPDesk\View\Resolver\Exception\CanNotResolve;
......@@ -11,12 +10,10 @@ use WPDesk\View\Resolver\Exception\CanNotResolve;
*
* @package WPDesk\View\Resolver
*/
class NullResolver implements Resolver
{
class NullResolver implements Resolver {
public function resolve($name, Renderer $renderer = null)
{
throw new CanNotResolve("Null Cannot resolve");
}
public function resolve( $name, Renderer $renderer = null ) {
throw new CanNotResolve( 'Null Cannot resolve' );
}
}
......@@ -16,5 +16,5 @@ interface Resolver {
*
* @return string
*/
public function resolve($name, Renderer $renderer = null);
public function resolve( $name, Renderer $renderer = null );
}
......@@ -2,7 +2,6 @@
namespace WPDesk\View\Resolver;
use WPDesk\View\Renderer\Renderer;
use WPDesk\View\Resolver\Exception\CanNotResolve;
......@@ -11,43 +10,39 @@ use WPDesk\View\Resolver\Exception\CanNotResolve;
*
* @package WPDesk\View\Resolver
*/
class WPThemeResolver implements Resolver
{
/** @var string */
private $template_base_path;
/**
* Base path for templates ie. subdir
*
* @param $template_base_path
*/
public function __construct($template_base_path)
{
$this->template_base_path = $template_base_path;
}
/**
* Resolve name to full path
*
* @param string $name
* @param Renderer|null $renderer
*
* @return string
*/
public function resolve($name, Renderer $renderer = null)
{
$templateFile = locate_template(
[
trailingslashit($this->template_base_path) . $name,
]
);
if ( ! $templateFile) {
throw new CanNotResolve("Cannot resolve {$name}");
}
return $templateFile;
}
class WPThemeResolver implements Resolver {
/** @var string */
private $template_base_path;
/**
* Base path for templates ie. subdir
*
* @param $template_base_path
*/
public function __construct( $template_base_path ) {
$this->template_base_path = $template_base_path;
}
/**
* Resolve name to full path
*
* @param string $name
* @param Renderer|null $renderer
*
* @return string
*/
public function resolve( $name, Renderer $renderer = null ) {
$templateFile = locate_template(
[
trailingslashit( $this->template_base_path ) . $name,
]
);
if ( ! $templateFile ) {
throw new CanNotResolve( "Cannot resolve {$name}" );
}
return $templateFile;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment