peridot-php / peridot-scope
Scopes for function binding and mixins
Installs: 215 919
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 5
Forks: 1
Open Issues: 0
Requires
- php: >=5.4.0
Requires (Dev)
This package is not auto-updated.
Last update: 2024-12-21 17:15:39 UTC
README
Peridot Scope.
Scopes allow safe binding of state for closures and offers a mechanism for mixing state and behavior in via child scopes.
Extracted from the Peridot testing framework.
##Usage
We recommend installing this package via composer:
$ composer require peridot-php/peridot-scope:~1.0
###Creating a Scope
$scope = new Scope(); $scope->name = "Brian"; $fnWithName = function() { print $this->name; }; $fnWithName = $scope->peridotBindTo($fnWithName); $fnWithName(); //prints "Brian"
###Using the ScopeTrait
If an existing class can benefit from a Scope, you can use the ScopeTrait
class Test { use ScopeTrait; protected $definition; public function __construct(callable $definition) { $this->definition = $definition; } /** * Return the definition bound to a scope */ public function getDefinition() { $scope = $this->getScope(); return $scope->peridotBindTo($this->definition); } }
##Mixins
You can mix behavior in via child scopes.