Skip to content
Snippets Groups Projects
Select Git revision
  • 5c1e330583a0d5eda6426db1c632784feff507e2
  • master default protected
  • feat/woo-template
  • organize-tests
  • feat/add-show-rendered-method
  • devel
  • 2.1.0
  • 2.0.0
  • 1.1.0
  • 1.0.2
  • 1.0.1
  • 1.0
12 results

DirResolver.php

Blame
  • DirResolver.php 850 B
    <?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 $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}" );
    	}
    }