Telegram-канал: t.me/rahim_mur... Instagram: / rahim.muratov Сайт: marlindev.ru Видеоролик о том, что такое Внедрение зависимостей(Dependency Injection)
Спасибо за пояснения. Напридумывают с*ки словей. Всю жизнь передавал одни объекты классов в другие объекты, точно так же как переменные и безымянные функции, но не знал что это оно и есть.
Чуваки создание экземпляра класса это инстанцирование, а создание переменной инициализация. Что плохого если в одном классе сделать подключение и запросы? class Request{ private static function dbConnect(){ $db = new PDO("mysql:host=localhost;dbname=test_bd;","root",""); return $db; } public static function requestTable($table, $where="id > 0"){ $data = self::dbConnect()->prepare("SELECT * FROM $table WHERE $where"); $data ->execute(); $result = $data->fetchAll(PDO::FETCH_ASSOC); return $result; } } $objRequest = new Request(); $user = $objRequest->requestTable("user","id > 0");
Это phpdtorm фишка, она так же помогает если ,asaksasm меняешь на h2 только вначале меняешь он в конце сам дописывает, тут так же с ковычкой, он еще и внутри ковычек автоматом экранирует слеши и прочее
Просто лучший!)) Наконец-то я осознал всю суть зависимостей) И ещё я заметил, что когда осознаёшь суть, то учить легче становится из-за понимания того, зачем ты это всё делаешь. Спасибо за видео!
Теперь ждем другие патерны IoC, Registry и чем же плох ServiceLocator? Я так понимаю, что это сборник зависимостей, в который ты можешь инжектить нужное.
Если мы хотим использовать РАЗНЫЕ базы и хранилища то тут еще надо общий интерфейс прикручивать, тогда можно и в базу и в файл и куда угодно сохранять.
Одно из самых лучших описаний DI, которое я видел на просторах ютуба. Отличное качество видео, хороший и понятный пример, хороший поставленный голос. В общем супер
Можно было здесь же объяснить о singleton, пример с бд был бы идеальным) Вообще было бы круто увидеть уроки по алгоритмам, а то в моей практике видел людей которые не могут древовидный массив построить. Продолжай в том же духе)
Музон хорош на заднем фоне, такой объемистый как из долины лилово-алых парусов, погребенных под темными водами у берегов далекой экзопланеты в созвездии Гончих псов. Поэтому его еще чутка надо притушить на 20%, чтобы не врывался в мозг в ответственный момент понимания php dependency injection, но без фанатизма, а то шарма не будет. имхо. Спасибо за уроки - очень качественное оформление и подача
Получается что методы со словом static никакого отношения не имеют к экземплярам класса. В классе описываются как методы для будущего экземпляра так и просто методы класса которые делают свою абракадабру при обращении к ним и у класса свой контекс self, а у экземпляра объекта свой this. Я вроде как так понял?
Типизация в конструкторе обязательна, так как абстракцией над поведением мы скрыли реализацию. Код знает только интерфейс, этого достаточно. Хороший пример это GoF паттерн мост (bridge), в свое время (лет 8 назад), лично для меня, он хорошо зашел при реализации приема платежей с разных платежных систем для одного магазина, он и по сей день существует и все работает.
Привет Рахим! Объяснил - хорошо, не по psr - плохо. Из-за этого php - никто не любит. Каждый пишет как ему удобно. У тебя много подписчиков - на тебе ответственность, приучай их правильно писать. Пожалуйста!
Отличное видио! Хотелось бы видио про "паттерны проектирования php и когда их нужно использовать, а когда не стоит". Cам используешь паттерны проектирования?
а я все откладывал эту тему, думал что-то сложное за такими заумными словами скрыты очевидные вещи, которые ты и так уже знал, только не знал страшных слов-названий а тут в названии ролика я не увидел страшных слов и решил просто посмотреть, а в середине ролика оно внезапно и вылезло ну я решил уже дальше досмотреть и оказалось, что ничего страшного нет
Хорошее и полезное видео) Очень хорошо объяснят что такое зависимости в целом) Есть один вопрос: Правильно ли будет, в данном примере, использовать абстрактный класс "Connection"?
так-то да, но в данном случае нет. потому что параметр для метода select мы пишем сами, а не принимаем его от фронта. так что в данном примере в принципе все ок
Я вот понял что классы используются как шаблоны (грубо говоря). Все вроде понятно, но вот сам код, где создаются объекты и работа с ними как должен быть написан? Вот нужно нам сделать регистрацию - там один сценарий будет (одни объекты создаются и работа с ними) Нужно сделать авторизацию - другие Мы должны для каждого действия создавать новый файл и на него ссылаться при переходе (нажимаем на авторизацию и нас перебрасывает на файл authorization.php, где используются нужные нам объекты)???? Я вот не понимаю... Мне сказали реализовать проект на ООП без паттернов. В случае с MVC, там просто через маршрутизатор мы обращаемся к нужным методам контроллера. А как без паттерна это реализовать я не понимаю :(
@@ToBeCloser007 мы на ссайте ссылаемся на определенный файлик со сценарием, в которых используются классы. Вот нужно мне на странице отобразить все статьи. Я ссылаюсь на файлик showPosts.php, в нем используется класс posts, к примеру...
Рассказал так, что Dependency injection- это только разбиение на классы по функционалу и ничего про проблемы зависимосей в коде. Лучше это не смотреть: вы все неправильно поймете.
Ну почему, частный случай DI. Абстракцией закрыли реализацию. А если там не PDO, а к примеру Connector с LazyLoad, вполне норм. Сам DI для чего был придуман?