Skip to content

Commit 89b2a13

Browse files
kukulichondrejmirtes
authored andcommitted
Support Nette 3.0 - experimental
1 parent c8452db commit 89b2a13

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

composer.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
"require": {
88
"php": "~7.0",
99
"phpstan/phpstan": "^0.6",
10-
"nette/component-model": "^2.3.0",
11-
"nette/di": "^2.3.0",
12-
"nette/forms": "^2.3.0",
13-
"nette/utils": "^2.3.0"
10+
"nette/component-model": "^2.3.0 || ^3.0.0",
11+
"nette/di": "^2.3.0 || ^3.0.0",
12+
"nette/forms": "^2.3.0 || ^3.0.0",
13+
"nette/utils": "^2.3.0 || ^3.0.0"
1414
},
1515
"require-dev": {
1616
"consistence/coding-standard": "~0.12.0",

phpstan.neon

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
parameters:
22
ignoreErrors:
33
- '#Call to an undefined method PHPUnit_Framework_MockObject_MockObject::[a-zA-Z0-9_]+\(\)#'
4+
- '#Class Nette\\Utils\\ObjectHelpers not found#'
5+
- '#Call to static method getMagicProperties\(\) on an unknown class Nette\\Utils\\ObjectHelpers#'

src/Reflection/Nette/SmartObjectPropertiesClassReflectionExtension.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,16 @@ public function hasProperty(ClassReflection $classReflection, string $propertyNa
1616
return false;
1717
}
1818

19-
$property = \Nette\Utils\ObjectMixin::getMagicProperty($classReflection->getName(), $propertyName);
20-
if ($property === null) {
21-
return false;
19+
if (class_exists(\Nette\Utils\ObjectHelpers::class) && method_exists(\Nette\Utils\ObjectHelpers::class, 'getMagicProperties')) {
20+
$magicProperties = \Nette\Utils\ObjectHelpers::getMagicProperties($classReflection->getName());
21+
if (!isset($magicProperties[$propertyName])) {
22+
return false;
23+
}
24+
} elseif (method_exists(\Nette\Utils\ObjectMixin::class, 'getMagicProperty')) {
25+
$property = \Nette\Utils\ObjectMixin::getMagicProperty($classReflection->getName(), $propertyName);
26+
if ($property === null) {
27+
return false;
28+
}
2229
}
2330

2431
$getterMethod = $this->getMethodByProperty($classReflection, $propertyName);

0 commit comments

Comments
 (0)