$loader = new Twig_Loader_Array([
'index.html' => phrase('Hello {{ name }}!', 123),
'page.html' => phrase('Page {{ name }}! {{ content }}', 123),
]);
$twig = new Twig_Environment($loader);
echo $twig->render('index.html', ['name' => 'Fabien']);
когда эта "фича" полезнаэто не фича, это ошибка и если ты думаешь что оно свойственно новичкам, то разочарую - вордпресс, битрикс, вебасист и т.д. зачастую этим грешат.
акие еще данные поступившие извне?те, что не передаются приватным методам класса другими его методами.
Добавить в метод проверку контекста? Это поняли даже разрабы PHP, а вы всё сопротивляетесь.self и $this имеют немного отличий.
если метод потом поменяет мой коллега? Это недопустимое поведение и это должно быть ограничено на уровне языка.прости, но это показывает то что ты не понимаешь докрин php, метод не должен доверять данным поступившим из вне.