а когда в теле через new создавать объект?
правильный подход в данном случае - иметь интерфейс + имплементацию и всегда делать через DI, но если мы на 200% уверены, что реализация будет одна, а инстанцирование очень простое - можно не оверинжинирить и делать через new / другой класс (условный хелпер, со статическим методом получения нужного нам объекта)
Типа всегда лучше использовать di, а в случае когда мы этого не хотим - использовать new? Похоже на ответ. Но хотелось бы больше конкретики. Может что почитать есть на эту тему?
литературу не посоветую, скажу только, что реальное понимание что и когда использовать, даст только практика и тонна ошибок. по поводу di - это просто хорошая практика. не стоит ее использовать только там, где это явный оверинжиниринг. например, есть простенький калькулятор, который выполняет несложные вычисления и мало от чего зависит, не имеет родителей или интерфейсов - в таком случае, нам нет смысла запихивать его в di, писать сервис провайдер и прочее, потому что мы потратим на это время, а выиграем примерно ничего
Благодарю. ☺️🙏
Обсуждают сегодня