Version 3.0.3 Breaks backwards compatibility
paveljanda opened this issue · comments
Version: ?.?.?
Bug Description
There are BC breaks in between 3.0.2 and 3.0.2 in class Nette\Application\UI\ComponentReflection
that causes some libraries to fail. For example: https://github.com/nextras/secured-links/blob/master/src/SecuredLinksControlTrait.php#L55
Steps To Reproduce
Use @secured
annotation in nette app when using nette/appplication
@ 3.0.3 and nextras/secured-links
Expected Behavior
Not to have BC Breaks in minor releases.
Possible Solution
Maybe saving this BC break for later major release?
Thanks for understanding!
Not related to issue, but is nextras/secured-links still relevant? I believe there's a built-in protection in nette/application 3.x.y by-default which can be disabled by @crossorigin
This is unpleasant, of course, but it was a change in the internal API which nextras/secured-link uses.
Method getParameterType() is not private because it is once used in Presenter. So it is marked as internal (more precisely whole class is marked as internal).
I understand that it actually requires effort to respect that something is internal (definitely compared to private), but unfortunately, there is nothing in PHP as a "package-private class" and as an author, I have a very narrowed room for maneuver so that's why I treat internal as package-private.
(I usually search the addons code to see if the affected function is somewhere used, I probably forgot about it here.)
but is nextras/secured-links still relevant?
Yes, in v3 is by-default protection which works in all modern browsers. It doesn't work in IE11 on Windows < 10, unlike nextras/secured-links.
Ok I understand. Thanks for the info
cc @hrach