laravel-commode / resolver
Installs: 15
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/laravel-commode/resolver
Requires
- php: >=5.5.0
- illuminate/support: 5.1.*
Requires (Dev)
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2026-02-04 15:58:54 UTC
README
#Commode: Resolver
laravel-commode/resolver is a [method|closure] resolver class/service for laravel-commode package environment or for laravel 5.1 standalone.
####Contents
You can install laravel-commode/resolver using composer:
"require": {
"laravel-commode/resolver": "dev-master"
}
To enable package you need to register LaravelCommode\Resolver\ResolverServiceProvider service provider in
your app.php configuration file.
<?php
// apppath/config/app.php
return [
// config code...
'providers' => [
// your app providers... ,
LaravelCommode\Resolver\ResolverServiceProvider::class
]
];
##Usage
Resolver is a small, but useful class for building something flexible or for something that requires resolving.
It is available through CommodeResolver facade, or - if you are a facade hater you can find it registered in
IoC container through alias "laravel-commode.resolver" or can initialize new instance as
new \LaravelCommode\Resolver\Resolver($laravelApplicationInstance).
For example, let's say that you have some structure for your security module like ISecurityUser and it's bound to your configured eloquent auth model.
<?php namespace App\System\Security\Abstractions;
interface ISecurityUser
{
public function hasPermission($permission);
public function hasPermissions(array $permissions);
}
<?php namespace App\DAL\Concrete\Eloquent\Models;
use Illuminate\Database\Eloquent\Model;
class Account extends Model implements ISecurityUser
{
/* your eloquent model code */
}
<?php namespace App\ServiceProviders;
use LaravelCommode\SilentService\SilentService;
use MyApp\System\Security\Abstractions\ISecurityUser;
class ACLServiceProvider extends SilentService
{
public function launching() {}
public function registering()
{
$this->app->bind(ISecurityUser::class, function ($app)
{
return app('auth')->user(); // note that returned value might be null
});
}
}
CommodeResolver can resolve closures and class methods or turn them into resolvable closures.
Here's an example of using it.
###Resolver and closures:
<?php
use App\System\Security\Abstractions\ISecurityUser;
$closureThatNeedsToBeResolved = function ($knownParameter1, $knownParameterN, ISecurityUser $needsToBeResolved = null)
{
return func_get_args();
};
$resolver = new \LaravelCommode\Resolver\Resolver(); // or app('laravel-commode.resolver');
$knownParameter1 = 'Known';
$knownParameter2 = 'Parameter';
/**
* Resolving closure and running it
**/
$result = $resolver->closure($closureThatNeedsToBeResolved, [$knownParameter1, $knownParameter2]);
$resultClosure = $resolver->makeClosure($closureThatNeedsToBeResolved);
var_dump(
$result, $resultClosure($knownParameter1, $knownParameter2),
$result === $resultClosure($knownParameter1, $knownParameter2)
);
// outputs
// array (size=3)
// 0 => string 'Known' (length=5)
// 1 => string 'Parameter' (length=9)
// 2 => object(MyApp\DAL\Concrete\Eloquent\Models\Account)
// array (size=3)
// 0 => string 'Known' (length=5)
// 1 => string 'Parameter' (length=9)
// 2 => object(MyApp\DAL\Concrete\Eloquent\Models\Account)
// boolean true
###Resolver and class methods:
<?php
use App\System\Security\Abstractions\ISecurityUser;
class SomeClass
{
public function methodThatNeedsToBeResolved($knownParameter1, $knownParameterN, ISecurityUser $needsToBeResolved = null)
{
return func_get_args();
}
}
$resolver = new \LaravelCommode\Resolver\Resolver(); // or app('laravel-commode.resolver');
$someClass = new SomeClass();
$knownParameter1 = 'Known';
$knownParameter2 = 'Parameter';
$result = $resolver->method($someClass, 'methodThatNeedsToBeResolved', [$knownParameter1, $knownParameter2]);
// or ->method(SomeClass::class, ..., ...) for calling static method or resolving class through
// app IOC
$resultClosure = $resolver->methodToClosure($someClass, 'methodThatNeedsToBeResolved');
// or ->method(SomeClass::class, ..., ...) for calling static method or resolving class through
// app IOC
var_dump(
$result, $resultClosure($knownParameter1, $knownParameter2),
$result === $resultClosure($knownParameter1, $knownParameter2)
);
// outputs
// array (size=3)
// 0 => string 'Known' (length=5)
// 1 => string 'Parameter' (length=9)
// 2 => object(MyApp\DAL\Concrete\Eloquent\Models\Account)
// array (size=3)
// 0 => string 'Known' (length=5)
// 1 => string 'Parameter' (length=9)
// 2 => object(MyApp\DAL\Concrete\Eloquent\Models\Account)
// boolean true
| Class | Service alias | Facade |
|---|---|---|
LaravelCommode\Resolver\Resolver |
laravel-commode.resolver | CommodeResolver |