если возникла такая необходимость, то, скорее всего, компонент написан плохоСовсем необязательно. Это может быть библиотека общего назначения, например. Render props не всегда эффективны, иногда нужно просто поменять класс у какого-нибудь внутреннего элемента сложной библиотеки. Стилизация автокомплита приходит на ум, например.
Установка always_populate_raw_post_data в значение -1 задает новое поведение, которое будет реализовано в будущих версиях PHP, когда $HTTP_RAW_POST_DATA больше не будет использоваться.php.net/manual/ru/ini.core.php
То есть в метод должен быть передан объект класса реализующего данный интерфейс?Да. Но какого конкретно класса будет этот объект, методу не важно, его интересуют лишь методы, заявленные в интерфейсе.
Теорию плохо на слух понимаю, если можно практический пример примененияПо SOLID вообще, и применительно его к php конкретно, настолько много информации, что вы без труда найдёте её в удобной для себя форме - статей, репозиториев, видеоуроков - чего угодно.
The following example demonstrates how to use find() with bindings.$books = R::find( 'book', ' title LIKE ? ', [ 'Learn to%' ] );
This find operation will return all beans of type 'book' having a title that begins with the phrase: 'Learn to'.