behat / gherkin
Gherkin DSL parser for PHP
Requires
- php: >=8.1 <8.6
- composer-runtime-api: ^2.2
Requires (Dev)
- cucumber/gherkin-monorepo: dev-gherkin-v39.1.0
- friendsofphp/php-cs-fixer: ^3.77
- mikey179/vfsstream: ^1.6
- phpstan/extension-installer: ^1
- phpstan/phpstan: ^2
- phpstan/phpstan-phpunit: ^2
- phpunit/phpunit: ^10.5
- symfony/yaml: ^5.4 || ^6.4 || ^7.0
Suggests
- symfony/yaml: If you want to parse features, represented in YAML files
This package is auto-updated.
Last update: 2026-06-15 08:31:04 UTC
README
This is the php Gherkin parser for Behat. It comes bundled with more than 40 native languages (see i18n.php) support
and clean architecture.
Useful Links
Usage Example
<?php $keywords = new Behat\Gherkin\Keywords\ArrayKeywords(array( 'en' => array( 'feature' => 'Feature', 'background' => 'Background', 'scenario' => 'Scenario', 'scenario_outline' => 'Scenario Outline|Scenario Template', 'examples' => 'Examples|Scenarios', 'given' => 'Given', 'when' => 'When', 'then' => 'Then', 'and' => 'And', 'but' => 'But' ), 'en-pirate' => array( 'feature' => 'Ahoy matey!', 'background' => 'Yo-ho-ho', 'scenario' => 'Heave to', 'scenario_outline' => 'Shiver me timbers', 'examples' => 'Dead men tell no tales', 'given' => 'Gangway!', 'when' => 'Blimey!', 'then' => 'Let go and haul', 'and' => 'Aye', 'but' => 'Avast!' ) )); $lexer = new Behat\Gherkin\Lexer($keywords); $parser = new Behat\Gherkin\Parser($lexer); $feature = $parser->parse(file_get_contents('some.feature'));
Installing Dependencies
curl https://getcomposer.org/installer | php
php composer.phar update
Contributors
- Konstantin Kudryashov everzet [original developer]
- Andrew Coulton acoulton [current maintainer]
- Carlos Granados carlos-granados [current maintainer]
- Christophe Coevoet stof [current maintainer]
- Other awesome developers
Support the project
Behat is free software, maintained by volunteers as a gift for users. If you'd like to see the project continue to thrive, and particularly if you use it for work, we'd encourage you to contribute.
Contributions of time - whether code, documentation, or support reviewing PRs and triaging issues - are very welcome and valued by the maintainers and the wider Behat community.
But we also believe that financial sponsorship is an important part of a healthy Open Source ecosystem. Maintaining a project like Behat requires a significant commitment from the core team: your support will help us to keep making that time available over the long term. Even small contributions make a big difference.
You can support @acoulton, @carlos-granados and @stof on GitHub sponsors. If you'd like to discuss supporting us in a different way, please get in touch!