PHPackages                             softius/resources-resolver - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. softius/resources-resolver

ActiveLibrary

softius/resources-resolver
==========================

Resolve file paths and methods

171PHP

Since Jun 10Pushed 9y ago1 watchersCompare

[ Source](https://github.com/softius/resources-resolver)[ Packagist](https://packagist.org/packages/softius/resources-resolver)[ RSS](/packages/softius-resources-resolver/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Resources Resolver
==================

[](#resources-resolver)

[![Latest Version on Packagist](https://camo.githubusercontent.com/c4a6382df1cca620990480b6e99d8780d1c70fd1fb80bac3e12aaf42c99f13c6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f736f66746975732f7265736f75726365732d7265736f6c7665722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/softius/resources-resolver)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)[![Build Status](https://camo.githubusercontent.com/cbe1d64b0e7054c498eda4c1f6a6c0101c9618dc0e555c6e2d5af15874c178a6/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f736f66746975732f7265736f75726365732d7265736f6c7665722f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/softius/resources-resolver)[![Coverage Status](https://camo.githubusercontent.com/35edf88c8680a97d35720e9fddf8f845a8fc141b5d1a71ba974d366d41cd1349/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f736f66746975732f7265736f75726365732d7265736f6c7665722e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/softius/resources-resolver/code-structure)[![Quality Score](https://camo.githubusercontent.com/5473ff6e5594645150a24f225ca7c31d673b48cecbb3b88b4c31a1faccf96493/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f736f66746975732f7265736f75726365732d7265736f6c7665722e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/softius/resources-resolver)[![Total Downloads](https://camo.githubusercontent.com/c5af986a664f0b4a7c7b7536b2af784c53e53d3bd9358f83508c8d1766f2d056/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f736f66746975732f7265736f75726365732d7265736f6c7665722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/softius/resources-resolver)

Install
-------

[](#install)

Via Composer

```
$ composer require softius/resources-resolver
```

Usage
-----

[](#usage)

The following resolvers are made available by this library.

- `CallableResolver`
- `FilenameResolver`

Usage: CallableResolver
-----------------------

[](#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

[](#resolve-a-non---static-method)

```
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

[](#resolve-a-method-using-alias-for-class)

```
use League\Container\Container;
use Softius\ResourcesResolver\CallableResolver;

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

$resolver = new CallableResolver($container);

$callable = $resolver->resolve('FooClass::someMethod');;
```

### Resolve a static method

[](#resolve-a-static-method)

```
use Softius\ResourcesResolver\CallableResolver;

$resolver = new CallableResolver();

$callable = $resolver->resolve('App\SomeClass::someStaticMethod');
```

### Resolve using parent or self

[](#resolve-using-parent-or-self)

```
use Softius\ResourcesResolver\CallableResolver;

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

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

    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]
    }
}
```

Usage: FilenameResolver
-----------------------

[](#usage-filenameresolver)

### Resolve a filename from templates directory

[](#resolve-a-filename-from-templates-directory)

```
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.

```
define('TEMPLATES_DIR', '...');

use Softius\ResourcesResolver\FilenameResolver;

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

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

```
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

[](#resolve-a-filename-from-include-path)

```
define('TEMPLATES_DIR', '...');

use Softius\ResourcesResolver\FilenameResolver;

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

Testing
-------

[](#testing)

```
$ composer test
```

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/4a3ee57baf1b563b35564cb2a0a212012695f630d7c29372d2828595f5d060de?d=identicon)[softius](/maintainers/softius)

---

Top Contributors

[![softius](https://avatars.githubusercontent.com/u/586121?v=4)](https://github.com/softius "softius (27 commits)")

### Embed Badge

![Health badge](/badges/softius-resources-resolver/health.svg)

```
[![Health](https://phpackages.com/badges/softius-resources-resolver/health.svg)](https://phpackages.com/packages/softius-resources-resolver)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
