Telegram-канал: t.me/rahim_mur... Instagram: / rahim.muratov Сайт: marlindev.ru Видеоролик о том, что такое Внедрение зависимостей(Dependency Injection)
Спасибо за пояснения. Напридумывают с*ки словей. Всю жизнь передавал одни объекты классов в другие объекты, точно так же как переменные и безымянные функции, но не знал что это оно и есть.
Просто лучший!)) Наконец-то я осознал всю суть зависимостей) И ещё я заметил, что когда осознаёшь суть, то учить легче становится из-за понимания того, зачем ты это всё делаешь. Спасибо за видео!
Одно из самых лучших описаний DI, которое я видел на просторах ютуба. Отличное качество видео, хороший и понятный пример, хороший поставленный голос. В общем супер
Музон хорош на заднем фоне, такой объемистый как из долины лилово-алых парусов, погребенных под темными водами у берегов далекой экзопланеты в созвездии Гончих псов. Поэтому его еще чутка надо притушить на 20%, чтобы не врывался в мозг в ответственный момент понимания php dependency injection, но без фанатизма, а то шарма не будет. имхо. Спасибо за уроки - очень качественное оформление и подача
Теперь ждем другие патерны IoC, Registry и чем же плох ServiceLocator? Я так понимаю, что это сборник зависимостей, в который ты можешь инжектить нужное.
Чуваки создание экземпляра класса это инстанцирование, а создание переменной инициализация. Что плохого если в одном классе сделать подключение и запросы? 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);
Можно было здесь же объяснить о singleton, пример с бд был бы идеальным) Вообще было бы круто увидеть уроки по алгоритмам, а то в моей практике видел людей которые не могут древовидный массив построить. Продолжай в том же духе)
Если мы хотим использовать РАЗНЫЕ базы и хранилища то тут еще надо общий интерфейс прикручивать, тогда можно и в базу и в файл и куда угодно сохранять.
Типизация в конструкторе обязательна, так как абстракцией над поведением мы скрыли реализацию. Код знает только интерфейс, этого достаточно. Хороший пример это GoF паттерн мост (bridge), в свое время (лет 8 назад), лично для меня, он хорошо зашел при реализации приема платежей с разных платежных систем для одного магазина, он и по сей день существует и все работает.
Хорошее и полезное видео) Очень хорошо объяснят что такое зависимости в целом) Есть один вопрос: Правильно ли будет, в данном примере, использовать абстрактный класс "Connection"?
Привет Рахим! Объяснил - хорошо, не по psr - плохо. Из-за этого php - никто не любит. Каждый пишет как ему удобно. У тебя много подписчиков - на тебе ответственность, приучай их правильно писать. Пожалуйста!
Отличное видио! Хотелось бы видио про "паттерны проектирования php и когда их нужно использовать, а когда не стоит". Cам используешь паттерны проектирования?
а я все откладывал эту тему, думал что-то сложное за такими заумными словами скрыты очевидные вещи, которые ты и так уже знал, только не знал страшных слов-названий а тут в названии ролика я не увидел страшных слов и решил просто посмотреть, а в середине ролика оно внезапно и вылезло ну я решил уже дальше досмотреть и оказалось, что ничего страшного нет
Рассказал так, что Dependency injection- это только разбиение на классы по функционалу и ничего про проблемы зависимосей в коде. Лучше это не смотреть: вы все неправильно поймете.
Ну почему, частный случай DI. Абстракцией закрыли реализацию. А если там не PDO, а к примеру Connector с LazyLoad, вполне норм. Сам DI для чего был придуман?
Получается что методы со словом static никакого отношения не имеют к экземплярам класса. В классе описываются как методы для будущего экземпляра так и просто методы класса которые делают свою абракадабру при обращении к ним и у класса свой контекс self, а у экземпляра объекта свой this. Я вроде как так понял?
Я вот понял что классы используются как шаблоны (грубо говоря). Все вроде понятно, но вот сам код, где создаются объекты и работа с ними как должен быть написан? Вот нужно нам сделать регистрацию - там один сценарий будет (одни объекты создаются и работа с ними) Нужно сделать авторизацию - другие Мы должны для каждого действия создавать новый файл и на него ссылаться при переходе (нажимаем на авторизацию и нас перебрасывает на файл authorization.php, где используются нужные нам объекты)???? Я вот не понимаю... Мне сказали реализовать проект на ООП без паттернов. В случае с MVC, там просто через маршрутизатор мы обращаемся к нужным методам контроллера. А как без паттерна это реализовать я не понимаю :(
@@ToBeCloser007 мы на ссайте ссылаемся на определенный файлик со сценарием, в которых используются классы. Вот нужно мне на странице отобразить все статьи. Я ссылаюсь на файлик showPosts.php, в нем используется класс posts, к примеру...
так-то да, но в данном случае нет. потому что параметр для метода select мы пишем сами, а не принимаем его от фронта. так что в данном примере в принципе все ок
Это phpdtorm фишка, она так же помогает если ,asaksasm меняешь на h2 только вначале меняешь он в конце сам дописывает, тут так же с ковычкой, он еще и внутри ковычек автоматом экранирует слеши и прочее
Привет. Объяснил самым доступным способом как мог. Надеюсь что будет полезно.
Все понятно, четко и без воды. Спасибо!
Спасибо за пояснения. Напридумывают с*ки словей. Всю жизнь передавал одни объекты классов в другие объекты, точно так же как переменные и безымянные функции, но не знал что это оно и есть.
Вася Бот и не говори)))
Просто лучший!)) Наконец-то я осознал всю суть зависимостей) И ещё я заметил, что когда осознаёшь суть, то учить легче становится из-за понимания того, зачем ты это всё делаешь. Спасибо за видео!
Одно из самых лучших описаний DI, которое я видел на просторах ютуба. Отличное качество видео, хороший и понятный пример, хороший поставленный голос. В общем супер
Чувак,ты просто лучший,никто кроме тебя не рассказал эту тему лучше для меня.Лайк,подписка
Спасибо, брат. Действительно очень полезная информация))
Отличный урок. Спасибо!
Первоклассное объяснение без слов лайк
Боже, это же превосходно! Нереально понятно и круто!
Андрей, рад что мои видео помогли понять! Крутяк)
Супер. Я пишу на js, но объяснение такое, что всё понятно + хорошие примеры.
Отличный урок. Все понятно, а главное - самым простым языком
Очень доступно и понятно объяснено. Ждем с нетерпением следующего урока.
Спасибо. Хорошо. Все ролики будут выходить теперь на сайте. Поэтому подпишитесь чтобы не пропустить
Рахим Сасибо, ты самый лучший!!!
Реально лучшее объяснение из всех.
Не знал php, но ты объясняешь нереально доходчиво и я разобрался. Спасибо братан
Спасибо, каждый урок полезен и понятен.
Музон хорош на заднем фоне, такой объемистый как из долины лилово-алых парусов, погребенных под темными водами у берегов далекой экзопланеты в созвездии Гончих псов. Поэтому его еще чутка надо притушить на 20%, чтобы не врывался в мозг в ответственный момент понимания php dependency injection, но без фанатизма, а то шарма не будет. имхо. Спасибо за уроки - очень качественное оформление и подача
Константин Прудников 😂 хорошо
Теперь ждем другие патерны IoC, Registry и чем же плох ServiceLocator? Я так понимаю, что это сборник зависимостей, в который ты можешь инжектить нужное.
Чуваки создание экземпляра класса это инстанцирование, а создание переменной инициализация.
Что плохого если в одном классе сделать подключение и запросы?
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");
Спасибо, все стало понятно!
Можно было здесь же объяснить о singleton, пример с бд был бы идеальным) Вообще было бы круто увидеть уроки по алгоритмам, а то в моей практике видел людей которые не могут древовидный массив построить. Продолжай в том же духе)
все четко и понятно! продолжай в томже духе, благодаря тебе будет меньше "щиткода" !
отличная работа Марлин, спасибо за данное видео
Даже первый принцип solid объяснил) классное видео )
Лайк и подписка за такой контент.
Если мы хотим использовать РАЗНЫЕ базы и хранилища то тут еще надо общий интерфейс прикручивать, тогда можно и в базу и в файл и куда угодно сохранять.
Слишком редко выпускаете. Каждый день выпускайте пжл:)
Типизация в конструкторе обязательна, так как абстракцией над поведением мы скрыли реализацию. Код знает только интерфейс, этого достаточно. Хороший пример это GoF паттерн мост (bridge), в свое время (лет 8 назад), лично для меня, он хорошо зашел при реализации приема платежей с разных платежных систем для одного магазина, он и по сей день существует и все работает.
Молодец! Спасибо за видео.
Лучшее обьснение! Спасибо!
Спасибо за видео. Действительно очень познавательно!
Класс. Теперь расскажи про DIC
Спасибо за видео. Что за тема стоит на PHPStorm? Постоянно ей пользуешься или только для видео?)
Вай, на примере работы с базой очень хорошо зашло.
Хорошее и полезное видео) Очень хорошо объяснят что такое зависимости в целом)
Есть один вопрос: Правильно ли будет, в данном примере, использовать абстрактный класс "Connection"?
Привет Рахим! Объяснил - хорошо, не по psr - плохо.
Из-за этого php - никто не любит. Каждый пишет как ему удобно.
У тебя много подписчиков - на тебе ответственность, приучай их правильно писать. Пожалуйста!
Спасибо! Всё очень понятно!
Надо было пример привести с наркоманом и шприцом. Получилось бы в тему 😃
Все гуд, спасибо )
Отличное видио! Хотелось бы видио про "паттерны проектирования php и когда их нужно использовать, а когда не стоит". Cам используешь паттерны проектирования?
не вижу di передача объекта в качестве параметра? Это di????????????
Спасибо за новые рекомендации.
Привет. Спасибо, все понятно объяснил!!
++++ Best explanation ever!!!
Спасибо Вам огромное!
Спасибо!
а я все откладывал эту тему, думал что-то сложное
за такими заумными словами скрыты очевидные вещи, которые ты и так уже знал, только не знал страшных слов-названий
а тут в названии ролика я не увидел страшных слов и решил просто посмотреть, а в середине ролика оно внезапно и вылезло
ну я решил уже дальше досмотреть и оказалось, что ничего страшного нет
Когда используешь dependency injection но не знаешь что такое dependency injection ;) Спасибо за разьеснение
Респект уже за то что нет собачек и кошечек. Еще 'нравятся' примеры с пицей и другой херней. Никак через такое не въезжаю. Спасибо. просто и понятно
Топ!
Красивая тема для ide как называется?
А почему не сделать в конструкторе билдера Connection::make?
Рассказал так, что Dependency injection- это только разбиение на классы по функционалу и ничего про проблемы зависимосей в коде. Лучше это не смотреть: вы все неправильно поймете.
Ну почему, частный случай DI. Абстракцией закрыли реализацию. А если там не PDO, а к примеру Connector с LazyLoad, вполне норм. Сам DI для чего был придуман?
@@faizulla5838 Согласен.
а ты хорош
Спасибо! Вопрос - Обязательно ли внедрять зависимости через конструктор?
Ivan Makhambetov если определенный метод зависит от другого компонента, то можно использовать инъекцию метода. А если весь класс то через конструктор
спс
Получается что методы со словом static никакого отношения не имеют к экземплярам класса. В классе описываются как методы для будущего экземпляра так и просто методы класса которые делают свою абракадабру при обращении к ним и у класса свой контекс self, а у экземпляра объекта свой this. Я вроде как так понял?
привет, подскажи пожалуйста как ты так красиво выводишь var_dump он же не поддерживает такую красоту на выходе?
Привет! Есть видео на канале про var_dump. Там все рассказал)
Вот это педантизм, все супер !!!
Хорошее видео
Я вот понял что классы используются как шаблоны (грубо говоря).
Все вроде понятно, но вот сам код, где создаются объекты и работа с ними как должен быть написан?
Вот нужно нам сделать регистрацию - там один сценарий будет (одни объекты создаются и работа с ними)
Нужно сделать авторизацию - другие
Мы должны для каждого действия создавать новый файл и на него ссылаться при переходе (нажимаем на авторизацию и нас перебрасывает на файл authorization.php, где используются нужные нам объекты)????
Я вот не понимаю...
Мне сказали реализовать проект на ООП без паттернов. В случае с MVC, там просто через маршрутизатор мы обращаемся к нужным методам контроллера.
А как без паттерна это реализовать я не понимаю :(
Создайте объект Пользователь у которого есть метод Регистрации. Такой подход будет работать без MVC
@@ToBeCloser007 мы на ссайте ссылаемся на определенный файлик со сценарием, в которых используются классы. Вот нужно мне на странице отобразить все статьи. Я ссылаюсь на файлик showPosts.php, в нем используется класс posts, к примеру...
💣
Норм молодец !
Да, все круто... Но, а разве обязательно писать statement в
...$db->query(statement:’SELECT...??
или это побочный эффект от пхп шторма??
@@rootwood2737 Сам спросил... сам ответил... =)
Внедрение SQL инъекции))))
$db->select('users; drop table users;')
так-то да, но в данном случае нет. потому что параметр для метода select мы пишем сами, а не принимаем его от фронта. так что в данном примере в принципе все ок
8:21 как ты их поменял?
Это phpdtorm фишка, она так же помогает если ,asaksasm меняешь на h2 только вначале меняешь он в конце сам дописывает, тут так же с ковычкой, он еще и внутри ковычек автоматом экранирует слеши и прочее
@@qAntBcn как это включить в настройках?
а сервис контейнер что?
Что за плагин для браузера подсвечивает var_dump ?
Hardc0re xdebug
Вы спрашиваете об этом? xdebug.org/docs/all_settings
лайк, подписка, колокольчик.
Ты бог
Divide et impera.
Я понимаю что видео не о том... Но root ... Ужасный пример подаете.
Почему ужасный?