apply() public static method

Applies a filter to a method.
public static apply ( mixed $context, string | array $methods, string $name ) : string
$context mixed The instance or class name context to apply a new filter.
$methods string | array The name or array of method names to be filtered.
$name string The filter name to apply.
return string The name reference of the applied filter.
コード例 #1
0
ファイル: KahlanSpec.php プロジェクト: samsonasik/kahlan
            Filter::apply($this->specs, 'load', 'spec.load');
            Filter::register('spec.reporters', function ($chain) use(&$order) {
                $order[] = 'reporters';
            });
            Filter::apply($this->specs, 'reporters', 'spec.reporters');
            Filter::register('spec.matchers', function ($chain) use(&$order) {
                $order[] = 'matchers';
            });
            Filter::apply($this->specs, 'matchers', 'spec.matchers');
            Filter::register('spec.run', function ($chain) use(&$order) {
                $order[] = 'run';
            });
            Filter::apply($this->specs, 'run', 'spec.run');
            Filter::register('spec.reporting', function ($chain) use(&$order) {
                $order[] = 'reporting';
            });
            Filter::apply($this->specs, 'reporting', 'spec.reporting');
            Filter::register('spec.stop', function ($chain) use(&$order) {
                $order[] = 'stop';
            });
            Filter::apply($this->specs, 'stop', 'spec.stop');
            Filter::register('spec.quit', function ($chain) use(&$order) {
                $order[] = 'quit';
            });
            Filter::apply($this->specs, 'quit', 'spec.quit');
            $this->specs->run();
            expect($order)->toBe(['bootstrap', 'interceptor', 'namespaces', 'patchers', 'load', 'reporters', 'matchers', 'run', 'reporting', 'stop', 'quit']);
            Interceptor::unpatch();
        });
    });
});
コード例 #2
0
<?php

use Kahlan\Filter\Filter;
use Kahlan\Reporter\Coverage;
use Kahlan\Reporter\Coverage\Driver\Xdebug;
use Kahlan\Reporter\Coverage\Exporter\Coveralls;
use Kahlan\Reporter\Coverage\Exporter\CodeClimate;
$args = $this->args();
$args->argument('coverage', 'default', 3);
Filter::register('kahlan.coverage', function ($chain) {
    if (!extension_loaded('xdebug')) {
        return;
    }
    $reporters = $this->reporters();
    $coverage = new Coverage(['verbosity' => $this->args()->get('coverage'), 'driver' => new Xdebug(), 'path' => $this->args()->get('src'), 'exclude' => ['src/init.php', 'src/Cli/Kahlan.php', 'src/Reporter/Coverage/Collector.php', 'src/Reporter/Coverage/Driver/Xdebug.php', 'src/Reporter/Coverage/Driver/HHVM.php', 'src/Reporter/Coverage/Driver/Phpdbg.php', 'src/Reporter/Dot.php', 'src/Reporter/Bar.php', 'src/Reporter/Verbose.php', 'src/Reporter/Terminal.php', 'src/Reporter/Reporter.php', 'src/Reporter/Coverage.php'], 'colors' => !$this->args()->get('no-colors')]);
    $reporters->add('coverage', $coverage);
});
Filter::apply($this, 'coverage', 'kahlan.coverage');
Filter::register('kahlan.coverage-exporter', function ($chain) {
    $reporter = $this->reporters()->get('coverage');
    if (!$reporter) {
        return;
    }
    Coveralls::write(['collector' => $reporter, 'file' => 'coveralls.json', 'service_name' => 'travis-ci', 'service_job_id' => getenv('TRAVIS_JOB_ID') ?: null]);
    CodeClimate::write(['collector' => $reporter, 'file' => 'codeclimate.json', 'branch' => getenv('TRAVIS_BRANCH') ?: null, 'repo_token' => 'a4b5637db5629f60a5d3fc1a070b2339479ff8989c6491dfc6a19cada5e4ffaa']);
    return $chain->next();
});
Filter::apply($this, 'reporting', 'kahlan.coverage-exporter');
コード例 #3
0
ファイル: kahlan-config.php プロジェクト: crysalead/jit
<?php

use Kahlan\Filter\Filter;
/**
 * Completly disable the Kahlan autoloader interceptor configuration.
 */
class_exists('Lead\\Jit\\Parser');
class_exists('Lead\\Jit\\Node\\BlockDef');
class_exists('Lead\\Jit\\Node\\FunctionDef');
class_exists('Lead\\Jit\\TokenStream');
Filter::register('jit.interceptor', function ($chain) {
});
Filter::apply($this, 'interceptor', 'jit.interceptor');
コード例 #4
0
<?php

use Kahlan\Filter\Filter;
use Kahlan\Reporter\Coverage;
$args = $this->args();
$args->argument('spec', 'default', 'tests/kahlan');
$this->args()->set('exclude', ['Symfony', 'Sensio', 'Doctrine', 'JMS']);
/** Initializing a custom coverage reporter */
Filter::register('app.coverage', function ($chain) {
    $reporters = $this->reporters();
    if ($this->args()->exists('coverage')) {
        // Limit the Coverage analysis to only a couple of directories only
        $coverage = new Coverage(['verbosity' => $this->args()->get('coverage'), 'driver' => new Coverage\Driver\Xdebug(), 'path' => [__DIR__ . '/src'], 'exclude' => [__DIR__ . '/src/*/Resources', __DIR__ . '/src/*/DataFixtures']]);
        $reporters->add('coverage', $coverage);
    }
    return $reporters;
});
Filter::apply($this, 'coverage', 'app.coverage');
<?php

use Kahlan\Filter\Filter;
use RRegeer\Reporters\TeamcityReporter;
Filter::register('kahlan.teamcity', function () {
    $reporters = $this->reporters();
    $reporters->add('teamcity', new TeamcityReporter(['start' => $this->_start]));
});
Filter::apply($this, 'console', 'kahlan.teamcity');
コード例 #6
0
ファイル: FilterSpec.php プロジェクト: Ilyes512/kahlan
             $filters = Filter::filters();
             expect($filters)->toHaveLength(1);
             expect(isset($filters[$this->class]))->toBe(true);
         });
         it("imports class based filters", function () {
             Filter::filters([$this->class => [Filter::registered('spec.my_prefix')]]);
             $filters = Filter::filters();
             expect($filters)->toHaveLength(1);
             expect(isset($filters[$this->class]))->toBe(true);
         });
     });
 });
 describe("::apply()", function () {
     it("throws an Exception when trying to apply a filter on an unfilterable context", function () {
         $closure = function () {
             Filter::apply(null, 'filterable', 'spec.my_prefix');
         };
         expect($closure)->toThrow(new Exception("Error this context can't be filtered."));
     });
 });
 describe("::registered()", function () {
     it("exports the `Filter` class data", function () {
         $registered = Filter::registered();
         expect($registered)->toHaveLength(3);
         Filter::reset();
         Filter::register($registered);
         $registered = Filter::registered();
         expect($registered)->toHaveLength(3);
     });
 });
 describe("::register()", function () {
コード例 #7
0
ファイル: kahlan-config.php プロジェクト: jails/testing
    } catch (TimeoutException $e) {
        echo "Unable to run the WebDriver binary, abording.\n";
        $process->close();
        exit(-1);
    }
    return $chain->next();
});
Filter::register('register.globals', function ($chain) {
    $root = $this->suite();
    $root->mink = $mink = box('spec')->get('mink');
    $root->afterEach(function () use($mink) {
        $mink->resetSessions();
    });
    return $chain->next();
});
Filter::register('register.matchers', function ($chain) {
    Matcher::register('toContain', 'Testing\\Spec\\Matcher\\ToContain', 'Behat\\Mink\\Element\\Element');
    return $chain->next();
});
Filter::register('cleanup', function ($chain) {
    $box = box('spec');
    $box->get('mink')->stopSessions();
    $box->get('manager')->close();
    return $chain->next();
});
Filter::apply($this, 'interceptor', 'exclude.namespaces');
Filter::apply($this, 'run', 'run.webdriver');
Filter::apply($this, 'run', 'register.globals');
Filter::apply($this, 'run', 'register.matchers');
Filter::apply($this, 'stop', 'cleanup');
コード例 #8
0
<?php

use kahlan\filter\Filter;
use VCR\VCR;
VCR::configure()->setCassettePath(__DIR__ . '/spec/fixtures');
VCR::turnOn();
Filter::register('exclude.namespaces', function ($chain) {
});
Filter::apply($this, 'interceptor', 'exclude.namespaces');
コード例 #9
0
<?php

use kahlan\filter\Filter;
use kahlan\reporter\Coverage;
use kahlan\reporter\coverage\driver\Xdebug;
use kahlan\reporter\coverage\exporter\Coveralls;
$args = $this->args();
$args->argument('coverage', 'default', 3);
Filter::register('siphon.coverage', function ($chain) {
    if (!extension_loaded('xdebug')) {
        return;
    }
    $reporters = $this->reporters();
    $coverage = new Coverage(['verbosity' => $this->args()->get('coverage'), 'driver' => new Xdebug(), 'path' => $this->args()->get('src'), 'colors' => !$this->args()->get('no-colors')]);
    $reporters->add('coverage', $coverage);
});
Filter::apply($this, 'coverage', 'siphon.coverage');
Filter::register('siphon.coverage-exporter', function ($chain) {
    $reporter = $this->reporters()->get('coverage');
    if (!$reporter) {
        return;
    }
    Coveralls::write(['collector' => $reporter, 'file' => 'coveralls.json', 'service_name' => 'travis-ci', 'service_job_id' => getenv('TRAVIS_JOB_ID') ?: null]);
    return $chain->next();
});
Filter::apply($this, 'reporting', 'siphon.coverage-exporter');