Почему же? Все осталось так же как и раньше:
Да как-то не совсем, тут они ввели magic метод, вместо того чтобы просто указать параметром откуда брать данные, что абсолютно неоправданно. Да и с точки зрения чистоты восприятия кода это не одобряется.
Ведь magic-методы - это fallback, к ним обращение идёт после того как в классе не найден запрашиваемый метод.
Соответственно их постоянное использование идёт в ущерб производительности.
Основное применение для них - обработать ошибку, которая не была перехвачена вовремя, а не быть использованными постоянно.
$foo = $jinput->post->get('varname', 'default_value', 'filter');
Если посмотреть на обработку этого в JInput - что получается?
Создан дефолтный экземляр класса, который берёт данные из $_REQUEST, в нём не находится объекта/метода $post, идёт fallback к методу __get(), в котором заново создаётся экземпляр класса с уже заданными параметрами.
Да и вот это веселит
// TODO throw an exception