예제 #1
0
 public function closure()
 {
     return \Lead\Filter\Filters::run(isset($this) ? $this : get_called_class(), __FUNCTION__, func_get_args(), function ($next) {
         return function () {
             $rand = rand(2, 5);
             $rand++;
             return $rand;
         };
     });
 }
예제 #2
0
             return Filters::run(get_called_class(), 'filterable', func_get_args(), function ($next, $message) {
                 return "Hello {$message}";
             });
         });
         Filters::apply($class, 'filterable', $this->filter1);
         Filters::apply($subclass, 'filterable', $this->filter2);
         expect($subclass::filterable('World!'))->toBe('21Hello World!12');
         Filters::apply($subclass, 'filterable', $this->noChain);
         expect($subclass::filterable('World!'))->toBe("Hello");
     });
     it("applies filters in order", function () {
         $class = $this->class;
         $subclass = Double::classname(['extends' => $class]);
         allow($subclass)->toReceive('::filterable')->andRun(function () {
             return Filters::run(get_called_class(), 'filterable', func_get_args(), function ($next, $message) {
                 return "Hello {$message}";
             });
         });
         Filters::apply($subclass, 'filterable', $this->filter1);
         Filters::apply($subclass, 'filterable', $this->filter2);
         expect($subclass::filterable('World!'))->toBe('21Hello World!12');
     });
 });
 describe("::get()", function () {
     it("exports filters setted as a class level", function () {
         Filters::apply($this->class, 'filterable', $this->filter1);
         $filters = Filters::get();
         expect($filters)->toHaveLength(1);
         expect(isset($filters[$this->class . '::filterable']))->toBe(true);
     });
 });
예제 #3
0
 public function filterable()
 {
     return Filters::run($this, 'filterable', func_get_args(), function ($next, $message) {
         return "Hello {$message}";
     });
 }