Codeception / Codeception/AspectMock
Parse Error
- Langage dominant
- PHP
- Étoiles
- 784
- Forks
- 132
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
Case:
**Framework:** Yii2 2.0.11.2
**PHP:** 7.0.10
**AspeckMock** 2.0.1
**info** On ver. 1.0.0 works fine
AspectMock wrong parsing, convert and write to temporary storage this piece of code:
**original code**
```php
protected function loadConfiguration($configFile)
{
$this->stdout("Loading configuration from '{$configFile}'...\n");
foreach (require($configFile) as $name => $value) {
if (property_exists($this, $name) || $this->canSetProperty($name)) {
$this->$name = $value;
} else {
throw new Exception("Unknown configuration option: $name");
}
}
$this->getAssetManager(); // check if asset manager configuration is correct
}
```
**after convert with AspeckMock**
```php
protected function loadConfiguration($configFile)
{ if (($__am_res = __amock_before($this, __CLASS__, __FUNCTION__, array($configFile), false)) !== __AM_CONTINUE__) return $__am_res;
$this->stdout("Loading configuration from '{$configFile}'...\n");
foreach (require \Go\Instrument\Transformer\FilterInjectorTransformer::rewrite(($configFile) as $name => $value, '')) {
if (property_exists($this, $name) || $this->canSetProperty($name)) {
$this->$name = $value;
} else {
throw new Exception("Unknown configuration option: $name");
}
}
$this->getAssetManager(); // check if asset manager configuration is correct
}
```
**Problem with parse:**
```
foreach (require \Go\Instrument\Transformer\FilterInjectorTransformer::rewrite(($configFile) as $name => $value, ''))
```
**Error**
```
Exception 'ParseError' with message 'syntax error, unexpected 'as' (T_AS), expecting ',' or ')''
```
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Reproduce the transformation using the reported loadConfiguration($configFile) example and PHP 7.0.10, then inspect the FilterInjectorTransformer::rewrite entry point mentioned in the generated code. The fix is complete when the transformed foreach/require expression parses successfully and preserves the original iteration behavior.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- php
- Domaine
- testing
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100