У меня есть следующие каталоги структуры:Behat 3 + Symfony 3 Контекст с пространством имен не работает, когда без работы
composer.json
behat.yml
src
|--AppBundle
|--Features
|--example.feature
|--Context
|--FeatureContext.php
И следующий behat.yml
default:
autoload:
'': 'src/AppBundle/Features/Context'
suites:
default:
paths: ['src/AppBundle/Features']
contexts:
- FeatureContext:
session: '@session'
# and extensions standard for Symphony
И FeatureContext.php содержит
<?php
//namespace AppBundle\Features\Context;
use Behat\Behat\Context\Context;
use Behat\MinkExtension\Context\MinkContext;
/**
* Defines application features from the specific context.
*/
class FeatureContext extends MinkContext implements Context
{ ... }
Прокомментировано namespace. Когда я запускаю behate, теперь контекст найден правильно. Когда я раскомментировать имен возникает ошибка:
[Behat\Behat\Context\Exception\ContextNotFoundException]
FeatureContext
context class not found and can not be used.
Как сделать его работу, когда имен в FeatureContext.php является раскомментирована? Я мало знаю о PSR-0 и PSR-4, но если проблема может быть связана с этим, я добавляю фрагмент composer.json.
"autoload": {
"psr-4": {
"": "src/"
},
"classmap": [
"app/AppKernel.php",
"app/AppCache.php"
]
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
Я ищу лучшие практики кодирования, так что, если я делаю что-то плохое, как я голосовать за соответствующее предложение.
- мне кажется, я должен иметь пространство имен в FeatureContext.php, а не я?
- Кажется, я не должен использовать PSR-0 в composer.json, должен ли я?