Why can the Laravel controller be accessed properly using protected decorations?
protected function advert()
{
try {
$result = $this->systemService->advert ();
return $this->response->array (Response::return (200, "", $result));
} catch (\Exception $e) {
return $this->response->array (Response::return (0, $e->getMessage ()));
}
}
even if you use reflection instantiation, you can"t access the protected-decorated method. The laravel source code is as follows
$constructor = $reflector->getConstructor();
// If there are no constructors, that means there are no dependencies then
// we can just resolve the instances of the objects right away, without
// resolving any other types or dependencies out of these containers.
if (is_null($constructor)) {
array_pop($this->buildStack);
return new $concrete;
}
$dependencies = $constructor->getParameters();
// Once we have all the constructor"s parameters we can create each of the
// dependency instances and then use the reflection instances to make a
// new instance of this class, injecting the created dependencies in.
$instances = $this->resolveDependencies(
$dependencies
);
array_pop($this->buildStack);
return $reflector->newInstanceArgs($instances);