2017 © Pedro Peláez
 

library resources-resolver

Resolve file paths and methods

image

softius/resources-resolver

Resolve file paths and methods

  • Friday, June 10, 2016
  • by softius
  • Repository
  • 1 Watchers
  • 1 Stars
  • 2 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Resources Resolver

Latest Version on Packagist ![Software License][ico-license] Build Status ![Coverage Status][ico-scrutinizer] Quality Score ![Total Downloads][ico-downloads], (*1)

Install

Via Composer, (*2)

``` bash $ composer require softius/resources-resolver, (*3)


## Usage The following resolvers are made available by this library. * `CallableResolver` * `FilenameResolver` ## Usage: CallableResolver It is possible to resolve the following inputs to the associated callable as it is demonstrated below. This works for static and non-static methods as well and it relies heavily for a Container to be provided. * `App\GreetingController::helloAction` to `[instance of App\GreetingController, 'helloAction']` * `::helloAction` to `[instance of calling class, 'helloAction']` * `parent::helloAction` to `[parent instance of calling class, 'helloAction']` * `App\SomeClass::someStaticMethod` to `['App\SomeClass', 'someStaticMethod']` ### Resolve a non - static method ``` PHP use League\Container\Container; use Softius\ResourcesResolver\CallableResolver; $container = new Container(); $container->add('App\SomeClass'); $resolver = new CallableResolver($container); $callable = $resolver->resolve('App\SomeClass::someMethod');;

Resolve a method using alias for class

``` PHP use League\Container\Container; use Softius\ResourcesResolver\CallableResolver;, (*4)

$container = new Container(); $container->add('FooClass', 'App\SomeClass');, (*5)

$resolver = new CallableResolver($container);, (*6)

$callable = $resolver->resolve('FooClass::someMethod');;, (*7)


### Resolve a static method ``` PHP use Softius\ResourcesResolver\CallableResolver; $resolver = new CallableResolver(); $callable = $resolver->resolve('App\SomeClass::someStaticMethod');

Resolve using parent or self

``` PHP use Softius\ResourcesResolver\CallableResolver;, (*8)

class A { public function hi() { echo 'A: Hi!'; } }, (*9)

class B extends A { public function hi() { echo 'B: Hi!'; }, (*10)

public function test()
{
    $resolver = new CallableResolver();
    $callable = $resolver->resolve('::hi');         // returns [B, hi]
    $callable = $resolver->resolve('self::hi');     // returns [B, hi]
    $callable = $resolver->resolve('parent::hi');   // returns [A, hi]
}   

}, (*11)


## Usage: FilenameResolver ### Resolve a filename from templates directory ``` PHP define('TEMPLATES_DIR', '...'); use Softius\ResourcesResolver\FilenameResolver; $resolver = new FilenameResolver(TEMPLATES_DIR); $filename = $resolver->resolve('path/to/template.php');

It is also possible to omit the extension and specify a global extension for all files to be resolved, like below., (*12)

``` PHP define('TEMPLATES_DIR', '...');, (*13)

use Softius\ResourcesResolver\FilenameResolver;, (*14)

$resolver = new FilenameResolver(TEMPLATES_DIR); $resolver->setExtension('php'); $filename = $resolver->resolve('path/to/template');, (*15)


Many frameworks don't use the directory separator to provide a consistent look across multiple OS. The following example uses '.' as the directory separator without file extensions ``` PHP define('TEMPLATES_DIR', '...'); use Softius\ResourcesResolver\FilenameResolver; $resolver = new FilenameResolver(TEMPLATES_DIR, '.'); $resolver->setExtension('php'); $filename = $resolver->resolve('path.to.template');

Resolve a filename from include path

``` PHP define('TEMPLATES_DIR', '...');, (*16)

use Softius\ResourcesResolver\FilenameResolver;, (*17)

$resolver = new FilenameResolver(TEMPLATES_DIR); $resolver->useIncludePath(true); $filename = $resolver->resolve('path/to/file.php');, (*18)



## Testing ``` bash $ composer test

License

The MIT License (MIT). Please see License File for more information., (*19)

The Versions

10/06 2016

dev-master

9999999-dev https://github.com/softius/resources-resolver

Resolve file paths and methods

  Sources   Download

MIT

The Requires

 

The Development Requires

softius resources-resolver