Codeception / Codeception/AspectMock
Parse Error
- Ngôn ngữ chính
- PHP
- Star
- 784
- Fork
- 132
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
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 ')''
```
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Tái hiện phép biến đổi bằng ví dụ loadConfiguration($configFile) được báo cáo và PHP 7.0.10, sau đó kiểm tra entry point FilterInjectorTransformer::rewrite được đề cập trong mã đã生成. Bản sửa lỗi hoàn tất khi biểu thức foreach/require sau khi biến đổi được phân tích cú pháp thành công và giữ nguyên hành vi lặp ban đầu.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- php
- Lĩnh vực
- testing
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100