4 * This file is part of the Behat.
5 * (c) Konstantin Kudryashov <ever.zet@gmail.com>
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
11 namespace Behat\Behat\Context\ContextClass;
13 use Behat\Testwork\Suite\Suite;
16 * Generates basic PHP 5.3+ class with an optional namespace.
18 * @author Konstantin Kudryashov <ever.zet@gmail.com>
20 final class SimpleClassGenerator implements ClassGenerator
25 protected static $template = <<<'PHP'
28 {namespace}use Behat\Behat\Context\Context;
29 use Behat\Gherkin\Node\PyStringNode;
30 use Behat\Gherkin\Node\TableNode;
33 * Defines application features from the specific context.
35 class {className} implements Context
38 * Initializes context.
40 * Every scenario gets its own context instance.
41 * You can also pass arbitrary arguments to the
42 * context constructor through behat.yml.
44 public function __construct()
54 public function supportsSuiteAndClass(Suite $suite, $contextClass)
62 public function generateClass(Suite $suite, $contextClass)
67 if (false !== $pos = strrpos($fqn, '\\')) {
68 $namespace = 'namespace ' . substr($fqn, 0, $pos) . ";\n\n";
69 $contextClass = substr($fqn, $pos + 1);
75 '{namespace}' => $namespace,
76 '{className}' => $contextClass,