Mock třídy dědící od \ReflectionClass

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
echo
Člen | 134
+
0
-

Zdravím,
potřebuju něco jako

$mockista = new \Mockista\Registry;
$entityReflectionMock = $mockista->create('LeanMapper\Reflection\EntityReflection');

jenže ta třída dědí od \ReflectionClass a PHP vyhodí „Cannot determine default value for internal functions“.

Jde to nějak elegantně vyřešit?

Díky

llook
Člen | 407
+
0
-

Zkus to nareportovat, tohle by podle mě měl řešit Mockista.

On předpokládá, že pokud $parameter->isOptional(), tak že existuje výchozí hodnota, ale to u interních funkcí tak úplně neplatí – výchozí hodnoty jsou v dokumentaci, ale reflexe je nezná.


Snad by stačilo následující kód v Mockistovi:

if ($parameter->isOptional()) {
	$parameterDesc['default'] = $parameter->getDefaultValue();
}

Přepsat takhle:

if ($parameter->isOptional()) {
	if (!$parameter->isDefaultValueAvailable()) {
		break;
	}
	$parameterDesc['default'] = $parameter->getDefaultValue();
}
Honza Marek
Člen | 1664
+
0
-

Mockista\Registry, to vypadá spíš na můj fork, takže správné místo pro report je tu