Backend TV
Backend TV
  • 39
  • 419 985
Паттерн Адаптер на реальном примере в PHP
#php #designpatterns #programming #программирование #itubeteam
Разбираем паттерн Adapter усложняем программу, видим как он помогает избавиться от дублирования кода. Сравниваем что было, если бы не использовали адаптер. В конце смотрим UML-схему.
Друзья, я решил немного сменить формат, приглашаю на новый канал ua-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html
Переглядів: 4 254

Відео

Паттерн Строитель на примере проектирования БИГ МАКА
Переглядів 2,3 тис.2 роки тому
#php #designpatterns #programming #программирование Аналогия о том как лучше понять паттерн Строитель. Не забудьте налить колы =) Друзья, я решил немного сменить формат, приглашаю на новый канал ua-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html
Паттерн Абстрактная фабрика на реальном пример в PHP
Переглядів 4,3 тис.2 роки тому
#SoerAward #php #designpatterns #programming #программирование Рассказываю как с помощью паттерна абстрактная фабрика упростить код. Старался не пересказать википедию, а показать пример с пользой от использования паттерна. Друзья, я решил немного сменить формат, приглашаю на новый канал ua-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html
Паттерн Фабрика на реальном примере в PHP
Переглядів 10 тис.2 роки тому
#php #designpatterns #programming #программирование Рассказываю как с помощью фабрики избежать дублирования кода. Старался не пересказать википедию, а показать пример с пользой от использования паттерна. Друзья, я решил немного сменить формат, приглашаю на новый канал ua-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html
Паттерн Singleton на реальном примере в PHP
Переглядів 4,5 тис.2 роки тому
#php #designpatterns #programming #программирование Разбираем паттерн Singleton с использованием в реальном коде. Старался не пересказать википедию, а показать пример с пользой от использования паттерна. Друзья, я решил немного сменить формат, приглашаю на новый канал ua-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html
Установка composer на MacOS
Переглядів 1,9 тис.2 роки тому
За минуту рассказываю как установить composer на MacOS Поддержать автора 👨‍💻 : Тинькофф www.tinkoff.ru/rm/sardyko.ivan2/DxuTY29617 Сбер 4274 3200 7445 1066 ссылка на скрипт: drive.google.com/file/d/10KvhvxA5rIDiF9JIWhtxa7Jzt1Iid11X/view?usp=sharing Друзья, я решил немного сменить формат, приглашаю на новый канал ua-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html
Уроки PHP 8 - типы данных: Boolean
Переглядів 5023 роки тому
Продолжаем курс по PHP 8. Начинаем разбирать типы данных, в этом уроке затронем логический тип boolean. Для чего нужен, рассматриваем преобразование типов, ну и в конце задачка для тебя, зритель! пиши в комменты по задачке или просто так, комментом или лайком ты поможешь продвинуть видео чуть выше чем оно могло быть без тебя =) Друзья, я решил немного сменить формат, приглашаю на новый канал ua...
Уроки PHP 8 - Выражения и операторы
Переглядів 4163 роки тому
Продолжаем курс по PHP 8. Разбираем как строятся выражения, какие бывают операторы, отличие простых выражений от составных. Рассмотрим что такое идентификаторы и литералы, какие бывают виды операторов, а также побочные эффекты выражений. Друзья, я решил немного сменить формат, приглашаю на новый канал ua-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html #курсы php #php learn #tutorial 00:00 - Привет...
Уроки PHP 8 - Инструкции
Переглядів 6833 роки тому
Продолжаем изучение PHP 8. Что такое инструкция в php? почему это важно понимать? Готовим окружение к запуску файлов. Смотрим онлайн-песочницу php sandbox. точка с запятой в php, сокращенные встраиваемые блоки php c директивой short_open_tag. Это продолжение серии курсов по PHP8, второй урок "инструкции" Друзья, я решил немного сменить формат, приглашаю на новый канал ua-cam.com/channels/xZuK_V...
Уроки PHP 8 - Вводный урок
Переглядів 1,6 тис.3 роки тому
Начинаем изучение PHP 8. Зачем нужен язык, где и как применяется, с какими базами данных работает. Что поддерживает. Чем отличается php от javascript, разница между клиентом и сервером. Это вводный урок по PHP8 Друзья, я решил немного сменить формат, приглашаю на новый канал ua-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html #курсы php #php learn #tutorial 00:00 - Приветствие 00:08 - Что такое PHP...
Установка Ubuntu на виртуалку [2021]
Переглядів 2223 роки тому
Установка Ubuntu на виртуалку [2021]
Laravel - создание контроллера
Переглядів 1,1 тис.4 роки тому
Laravel - создание контроллера
Установка и запуск Laravel без Apache и Nginx
Переглядів 8524 роки тому
Установка и запуск Laravel без Apache и Nginx
Как стать хакером?
Переглядів 20 тис.5 років тому
Как стать хакером?
Laravel + Docker. (Nginx + Fpm + Mysql) Подробный разбор
Переглядів 39 тис.5 років тому
Laravel Docker. (Nginx Fpm Mysql) Подробный разбор
Wordpress - обзор бесплатного плагина Book Showcase
Переглядів 1,1 тис.5 років тому
Wordpress - обзор бесплатного плагина Book Showcase
Какой язык программирования выбрать в 2019 году?
Переглядів 1,7 тис.5 років тому
Какой язык программирования выбрать в 2019 году?
Решаем задачку на CODEWARS, используем функции str_split, str_repeat
Переглядів 2 тис.5 років тому
Решаем задачку на CODEWARS, используем функции str_split, str_repeat
Cравнение фреймворков Laravel и symfony на конец 2018 года
Переглядів 5 тис.5 років тому
Cравнение фреймворков Laravel и symfony на конец 2018 года
Установка COMPOSER на Windows за минуту
Переглядів 42 тис.6 років тому
Установка COMPOSER на Windows за минуту
SSH-доступ без логина и пароля (по ключу шифрования)
Переглядів 19 тис.6 років тому
SSH-доступ без логина и пароля (по ключу шифрования)
Необычный урок по php - foreach
Переглядів 6646 років тому
Необычный урок по php - foreach
Курс по Laravel#01 - route, blade extends
Переглядів 1,7 тис.6 років тому
Курс по Laravel#01 - route, blade extends
PHP простые примеры с числами, строками, var_dump, in array
Переглядів 2,5 тис.6 років тому
PHP простые примеры с числами, строками, var_dump, in array
Установка PHP на Windows 10
Переглядів 108 тис.6 років тому
Установка PHP на Windows 10
Установка python на windows
Переглядів 6466 років тому
Установка python на windows
Град в Санкт-Петербурге 22 июля 2017
Переглядів 1,4 тис.7 років тому
Град в Санкт-Петербурге 22 июля 2017
PHP для новичков, самые основы
Переглядів 7937 років тому
PHP для новичков, самые основы
Наследование, инкапсуляция, полиморфизм в PHP
Переглядів 2,4 тис.7 років тому
Наследование, инкапсуляция, полиморфизм в PHP
отключение обновлений в windows 10 навсегда
Переглядів 3,9 тис.7 років тому
отключение обновлений в windows 10 навсегда

КОМЕНТАРІ

  • @moneybobr
    @moneybobr 6 днів тому

    Не работает

  • @EsteraGhica
    @EsteraGhica 8 днів тому

    А как вы думаете, стоит ли добавлять путь к папке в переменные среды системы вручную или лучше использовать сторонние утилиты? лично я долго выбирал курсы по IT, рассматривал разные компании, но в итоге остановился на Skypro, и это помогло мне найти первого заказчика))

  • @user-of2mb6cv3x
    @user-of2mb6cv3x 10 днів тому

    Имхо достаточно неудачный пример для демонстрации паттерна, да и основной его смысл явно не озвучен, а точнее акцент смещен на избавлении от if/switch, хотя паттерн не про это. Суть же в чем - что бы передать обязанность создания конкретного объекта дочернему классу, через создание этого самого фабричного метода с возвратом понятного интерфейса, что бы в суперклассе можно было работать зная лишь интерфейс будущего объекта. Если относительно примера из видео. В классе (абстрактном) в котором заводим фабричный метод хорошо бы как минимум для наглядности иметь и другие методы, которые будут работать с будущим объектом, произведенным в конкретной реализации. //* ФАБРИЧНЫЙ МЕТОД *// //Интерфейс для возврата из фабричного метода interface PaymentServiceInterface { public function getFee(): int; public function pay(int $sum): bool; } //Класс, объект которого вернет фабричный метод конкретного подкласса class VtbPaymentService implements PaymentServiceInterface { public function getFee(): int { return 0; } public function pay(int $sum): bool { $sumTotal = $sum + $this->getFee(); return "VTB: Payed {$sumTotal}"; } } //Класс в котором использован фабричный метод abstract class Payment { private $service; /** * @param $service */ public function __construct() { // !!! ПОЛЕЧАЕМ ОБЪЕКТ ИЗ РЕАЛИЗАЦИИ ФАБРИЧНОГО МЕТОДА !!! $this->service = $this->getService(); } //Тот самый ФАБРИЧНЫЙ МЕТОД, через интерфейс которого мы можем работать в этом классе, не имея его конкретной реализации abstract protected function getService(): PaymentServiceInterface; //Рабочий метод, в котором используются будущий объект от фабричного метода public function payOrder(array $order): array { $orderSum = $order['sum']; $paymentServiceFee = $this->service->getFee(); $payed = $this->service->pay($orderSum); return [ 'payed' => $payed, 'sum' => $orderSum, 'paymentServiceFee' => $paymentServiceFee, ]; } } //Конкретный класс в котором мы реализуем фабричный метод и отдаем ожидаемый объект с которым работают методы суперкласса class VtbPayment extends Payment { public function getService(): PaymentServiceInterface { return new VtbPaymentService(); } } //Sber или Nal или любой другой класс реализующий PaymentServiceInterface //Как именно будет выбираться конкретный класс в данном случае не имеет значения $paymentService = new VtbPayment(); $order = [ 'sum' => 1000 ]; $paymentService->payOrder($order); //* /ФАБРИЧНЫЙ МЕТОД *//

  • @aziat3945
    @aziat3945 16 днів тому

    хорошо кэп)

  • @manjuan1505
    @manjuan1505 27 днів тому

    МАНУАЛ ПОЛНАЯ НЕ РАБОЧАЯ ХУЕТА!!!!

  • @wickedtorpedo75
    @wickedtorpedo75 28 днів тому

    Мне кажется либо правила open closed нарушена либо паттерн неправильно реализована

  • @ArchDevWorkshop
    @ArchDevWorkshop Місяць тому

    Спасибо за ролик! Объясните пожалуйста чем в этой задаче Билдер отличается от паттерна Декоратор? Вроде такой же принцип

  • @igornetineya5389
    @igornetineya5389 Місяць тому

    как ты схему включил в ide? на 8:40)))

  • @user-gv9sq9nh8s
    @user-gv9sq9nh8s 2 місяці тому

    Дружище, огромное тебе спасибо) я чуть до ручки не дошёл при поиске годного видоса. Незаслуженно мало лайков!

  • @grifffon1044
    @grifffon1044 2 місяці тому

    Не находит файл... Какая может быть причина? С диска скачивал и удалял, все равно не находит mac@MacBook-Pro ~ % chmod +x composer-install-macos.sh chmod: composer-install-macos.sh: No such file or directory

  • @soversus5374
    @soversus5374 2 місяці тому

    Идеально было бы, если бы не было никаких if и case. Например подгружался бы объект, который был выбран при оплате. А так, всеми этими case, получается тот же if, только в другом виде. Таки образом, не надо править код, если потребуется добавить или удалить способ оплаты.

    • @matveyru2976
      @matveyru2976 2 місяці тому

      это можно сделать, например, если мнемоника типа явно коррелирует с именем класса, например "sber" -> SberPayment, либо где-то хранить таблицу соответствия

  • @user-hp7ym1qx8y
    @user-hp7ym1qx8y 3 місяці тому

    Огромное спасибо, 6 лет видео, а выручает и сегодня, пожал бы руку тебе, жаль экран мешает)

  • @soversus5374
    @soversus5374 3 місяці тому

    Раньше это называлось оберткой.

  • @valerakuznetsov
    @valerakuznetsov 3 місяці тому

    спасибо вам учителем надо быть

  • @valeriagutsaeva5042
    @valeriagutsaeva5042 3 місяці тому

  • @vitche727
    @vitche727 3 місяці тому

    если $reportData = null will be Error

  • @mekhdi_ars
    @mekhdi_ars 3 місяці тому

    Лев! На макос 11 через brew не установилось, а тут вот так просто. Спасибо)

  • @fenix_63
    @fenix_63 4 місяці тому

    Так в классе PaymentHelper опять же куча ветвлений. В чём тогда вообще смысл? Мы всё равно не избавились от ветвлений, а только заменили if else на switch

  • @Atatalalala
    @Atatalalala 4 місяці тому

    не работает, в консоли всё равно пишет "php" не является...

  • @SteevenHookah
    @SteevenHookah 4 місяці тому

    Спасибо, не работает

  • @yuritian8830
    @yuritian8830 4 місяці тому

    у меня нет подходящих матов чтобы выразить свою благодарность!

  • @draackul
    @draackul 4 місяці тому

    Спасибо. Чёткое быстрое решение проблемы без воды. То, что надо. Все бы так делали.

  • @user-iz2ih4by3i
    @user-iz2ih4by3i 4 місяці тому

    Полная херня. Класс А создают только долбоебы.

  • @vadimkh
    @vadimkh 5 місяців тому

    если сервисы могут быть вызваны в разном порядке, то всё равно надо будет конфигурировать инстанс. вынести всё в отдельный файл init_log.php где создать объект и настроить его, а в других файлах делать require_once init_log.php ?

  • @mikasfree6371
    @mikasfree6371 5 місяців тому

    Спасибо коллега. Все работает.

  • @user-so5fx5zx2n
    @user-so5fx5zx2n 5 місяців тому

    Очень полезное видео. Спасибки❤

  • @Sergey-fg1uu
    @Sergey-fg1uu 5 місяців тому

    не до конца все рассказал, а именно, отключение доступа по паролю, иначе какой смысл. Хотелось бы узнать

    • @pr0zitiv
      @pr0zitiv 3 місяці тому

      OpenSSH отключить доступ по паролю

  • @allinfo3926
    @allinfo3926 5 місяців тому

    Я тут не вижу логику. Мы IF заменили на switch. И плодим не IF, а плодим case. В одном файле плодили IF, - сделали фабрику и в другом файле плодим case. И в чем прикол? оО?

  • @palach_666
    @palach_666 6 місяців тому

    Спасибо от души)

    • @backendtv1345
      @backendtv1345 6 місяців тому

      И вам спасибо! Пока сложно со временем, ролики планирую записывать по мере его появления)

  • @suleymanaliev1459
    @suleymanaliev1459 6 місяців тому

    Смотря на схему получается что мы добавляем сущности и расширяем систему, но в классе где описан switch мы изменям. А если избавится от точки изменения? допустим сделать более динамический способ создания сущности и добавлении оплаты в фабрику?

  • @wildhovercraft7242
    @wildhovercraft7242 6 місяців тому

    Привет, пробую поднять тестовый веб на win server 2016 (на виртуалке Hyper-V), ставил всё из архива, чтоб не собирать по кусочкам файлы, да и актуальность не так важна. Апач поднялся. Открываю в браузере localhost, папка test есть, а вот содержимое (index.php) не отображает вообще. В сервисах апач и SQL запущены, в логах ошибок нет. Как быть?

  • @animatsuki5345
    @animatsuki5345 6 місяців тому

    от души, брат

  • @user-nk5yf1oh5d
    @user-nk5yf1oh5d 6 місяців тому

    Четко, быстро, без воды. Поставил бы 10 лайков, если возможно

  • @Toleg80
    @Toleg80 6 місяців тому

    выдает сообщение об ошибке. Делал все по инструкции

  • @warmybo
    @warmybo 7 місяців тому

    спасибо! хоть один нормальный человек объяснил!

  • @yalmeme
    @yalmeme 7 місяців тому

    в чем проблема просто сделать один класс или функцию payment, в которую передавать вместе с заказом параметр например paymentType и внутри по этой развилке через if/case производить нужные действия? это же элементарная логика. я понимаю зачем можно разнести каждый тип оплаты в отдельный класс, но зачем городить еще интерфейс, хелпер и называть это "паттерн фабрика" - не понимаю.

  • @user-rv3cw6mp6i
    @user-rv3cw6mp6i 7 місяців тому

    Я обязательно напишу с чем я не согласен, когда пойму с чем, именно, я не согласен:)

  • @peters6007
    @peters6007 7 місяців тому

    А что со звуком? Ты нормальный?

  • @bibizan_planet_pictures
    @bibizan_planet_pictures 7 місяців тому

    php не является внутренней или внешней командой исполняемой программой или пакетным файлом.Я все добавил в path , все равно не работает

  • @marinakharitonova5009
    @marinakharitonova5009 8 місяців тому

    Thanks a lot!

  • @earth_burns
    @earth_burns 8 місяців тому

    супер, спасибо большое!!!

  • @mmt_poizon
    @mmt_poizon 9 місяців тому

    Спасибо! помогли

  • @Hard_Reset_Channel
    @Hard_Reset_Channel 9 місяців тому

    почему ты выбрал thread safe версию?

  • @Atikan37
    @Atikan37 10 місяців тому

    Выручил! Спасибо большое!

  • @mclotos
    @mclotos 11 місяців тому

    а зачем ставить composer в свою систему, когда у тебя уже установлен docker?

  • @vesh95
    @vesh95 11 місяців тому

    6:02 renderView можно было сделать стабильным и передавать туда массив по старинке, а getData выполнить до его вызова

  • @Stas-ir3gh
    @Stas-ir3gh 11 місяців тому

    Класс! Спасибо.

  • @Denisko123
    @Denisko123 11 місяців тому

    Ниче не понял. Изначально у тебя было два разных объекта логгера, с префиксом и без, с сохранением в файл и в лог. Как это решает твой синглтон ? Ты их тупо одинаковыми сделал. Не хочешь каждый раз создавать set-ы, сделай наиболее часто используемые данные по дефолту. Странный пример, короче. Лучше на примере подключения к БД показывать, типа один раз подключаемся к базе и все. Там уж точно ничего не меняется.

  • @melancholic_017
    @melancholic_017 Рік тому

    aaaaa,aaaaaaa,aaaaa,aaaaa,aaaaaa,AAA

  • @x1ro.
    @x1ro. Рік тому

    Без воды, четко и понятно