Mikhail Bukachuk
Mikhail Bukachuk
  • 87
  • 126 610
PHP Unit тестирование. Урок 5. Покрываем роутер юнит тестами с моками и стабами
Видео "Покрываем роутер юнит тестами с моками и стабами" посвящено написанию юнит тестов для маршрутизатора (роутера) в приложении. Основное внимание уделяется использованию моков и стабов для создания изолированных и контролируемых условий тестирования.
Установка PHPUnit: th-cam.com/video/YQHe1g3Ug8Q/w-d-xo.html
Дата провайдеры в PHPUnit: th-cam.com/video/vPdFXKDOUwk/w-d-xo.html
setUp и tearDown: th-cam.com/video/IIF-pwcNeoE/w-d-xo.html
00:00 Вступление и обзор маршрутизатора
01:00 Установка Phpunit с помощью composer
03:00 Первый запуск phpunit команды
05:00 Пишем первый unit тест метода Route::getPattern
07:30 Создаем data provider для тест метода
10:20 Тестируем метод getUri
13:00 Тестируем класс RouteCollection
18:00 Тестируем класс RouteMatcher без моков
25:00 Пишем интеграционный тест index.php
29:00 Тестируем выброс исключения в RouteMatcher
30:00 Пишем тест RouterMatcher с использованием Mock объектов
37:00 Возможные проблемы тестов с Мок объектами
Основные темы видео:
Введение в юнит тестирование:
Объяснение целей юнит тестирования.
Важность тестирования отдельных компонентов системы.
Что такое моки и стабы:
Моки (Mocks): Объекты, которые позволяют имитировать поведение реальных объектов, а также задавать ожидания и проверять взаимодействие с этими объектами.
Стабы (Stubs): Упрощенные версии объектов, которые возвращают предопределенные ответы и не имеют логики.
Пример создания роутера:
Обзор кода роутера, который требуется покрыть тестами.
Разъяснение функций и методов роутера.
Написание тестов с использованием моков:
Создание моков для зависимостей роутера.
Примеры тестов, которые проверяют корректное взаимодействие роутера с его зависимостями.
Настройка и проверка ожиданий моков.
Использование стабов для тестирования:
Случаи, когда использование стабов предпочтительнее моков.
Примеры тестов с использованием стабов для обеспечения предсказуемого поведения зависимостей.
Практические советы и рекомендации:
Как выбрать между моками и стабами в зависимости от контекста.
Лучшие практики написания и организации тестов.
Инструменты и библиотеки, которые могут помочь в тестировании (например, Jest, Sinon).
Заключение:
Резюме важности юнит тестирования и использования моков и стабов.
Ответы на вопросы и разбор типичных ошибок.
Видео нацелено на разработчиков, которые хотят улучшить свои навыки тестирования и повысить надежность и качество своего кода, используя современные подходы и инструменты.
#php #phpunit #программирование
มุมมอง: 385

วีดีโอ

Переменные среды env файлов Symfony фреймворка
มุมมอง 5504 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео более детально рассмотрим вопросы переменных сред файла .env. Также выясним, как мы можем трансформировать данные из env файлов. Также рассмотрим зачем нужны среды env test prod Что такое переменные среды и для чего они нужны. Примеры использования переменных среды в различных сценариях. Как Symfony использ...
Как определить страну и город пользователя по IP адресу
มุมมอง 4514 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео рассмотрим пример определения страны и города посетителя сайта по его IP адресу. Для определения будем использовать бесплатную базу MaxMind и пакет PHP для чтения данных из этой базы 00:00 Где и как скачать базы Maxmind 01:10 Устанавливаем с помощью composer компонент geoip2/geoip2 01:20 Разбираемся с работ...
Создаем alias в bash Linux для быстрого запуска команд
มุมมอง 1665 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео разберемся как делать алиасы в bash, зачем они нужны и как сделать, чтобы они сохранялись к следующему сеансу консоли. 00:00 Введение 00:18 Создаем наш первый alias в Linux bash консоли 00:34 Используем созданный алиас в консоли 00:52 Немного о команде history в Linux bash 01:27 Прописываем алиас в bash_rc ...
Маршрутизация роутинг запросов в PHP с использованием ООП
มุมมอง 4945 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob Сегодня напишем маршрутизацию на PHP без привлечения фреймворков, но с использованием ООП и регулярных выражений. Напишем простейший пример роутинга с использованием объектно-ориентированного программирования. У нас будет класс маршрута, класс коллекции маршрутов, класс их сопоставления. 00:00 Разбираемся с принципом ра...
Аутентификация JWT в Symfony с помощью firebase/jwt
มุมมอง 3785 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео сделаем аутентификацию по JWT токену но без использования бандла LexikJWTAuthenticationBundle. Для кодирования и декодирования JWT возьмем пакет firebase/jwt и прикрутим его к Symfony. Разбемся как сделать свой класс аутентификации. Также немного поучимся как решать возникшие проблемы с Symfony. 00:00 Что б...
Базовые знания администратора Linux
มุมมอง 1.3K5 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео кратко пробежимся по базовым операциям в операционных системах Linux на примере Debian/Ubuntu. Как подключиться к серверу Linux. Обзор файловой системы, переход по каталогам, права доступа файлов и каталогов. Использование sudo и su для операций суперпользователя Linux. Использование cat для просмотра файло...
Как правильно добавить или изменить колонку в большой таблице Mysql
มุมมอง 2775 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob Добавление или изменение колонок в большой таблице MySQL может быть деликатным процессом, особенно когда таблица содержит большое количество данных. Это руководство как сделать это правильно, какие проблемы могут возникнуть и как их можно решить. Рассмотрим использование Percona toolkit и поменяем тип колонки в большой ...
Создание и удаление связанных сущностей в Symfony / Doctrine
มุมมอง 2975 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео добавим еще одну сущность к блогу, содержащую meta данные страницы блога. Научимся создавать вложенные формы, а также разберемся с настройками каскадных операций Doctrine с помощью параметров cascade persist и remove 00:00 Добавление сущности для мета данных страницы блога 02:00 Связывание сущностей Blog и ...
Как работают cookie и сессии в PHP
มุมมอง 8565 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео подробно разберем механизмы работы COOKIE и SESSION в PHP. Узнаем зачем использовать cookie и сессии. Разберем основные их отличия, а также примеры использования. Использование безопасных флагов для cookie (HttpOnly, Secure). Настройка времени жизни сессий в зависимости от требований безопасности. Сделаем п...
Навигация по файлам в Linux с помощью Midnight commander
มุมมอง 6946 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob Midnight Commander (MC) - это мощный текстовый файловый менеджер для Unix-подобных систем, таких как Linux. MC предлагает удобный интерфейс для навигации по файловой системе, копирования, перемещения, удаления файлов и выполнения других операций. В этом видео показано, как эффективно использовать файловый менеджер Midni...
Аутентификация и авторизация с помощью JWT в Symfony PHP фреймворке
มุมมอง 8046 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео мы переделаем механизм аутентификации и авторизации с помощью JWT в Symfony. Для этого воспользуемся готовым бандлом LexikJWTAuthenticationBundle. Установим данный Symfony bundle. Разберемся с его настройками и опробуем его в работе. 00:00 Что такое JWT токен 01:58 JSON логин в Symfony с помощью сессий для ...
Как подключиться к серверу Linux по SSH протоколу
มุมมอง 4767 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео мы разберем момент подключения к серверу Linux по протоколу SSH. Сначала сделаем это из Windows с помощью программы Putty и пароля, далее сгенерируем SSH private и public ключи и научимся ими пользоваться для подключения к серверу без пароля. Потом аналогично проделаем такую же операцию из Linux, если вы хо...
Логирование в Symfony PHP с помощью Monolog. Подключаем filebeat, elasticsearch и Kibana
มุมมอง 8827 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob Видеоурок посвящен настройке и использованию системы логирования в Symfony с помощью Monolog, а также интеграции с инструментами Filebeat, Elasticsearch и Kibana для анализа и визуализации логов. Вот основные шаги и темы, которые могут быть освещены в видео: Введение в логирование с Monolog в Symfony: Обзор Monolog как ...
Делаем простой интернет магазин на PHP без ООП для начинающих
มุมมอง 1.6K7 หลายเดือนก่อน
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео сделаем простой интернет магазин на голом языке программирования PHP без ОПП с использованием базы данных mysql. Разберемся с тем, как работает PHP, как работают формы в PHP и как обрабатывать данные формы. Как реализовать простейший фильтр товаров на PHP. Научимся с нуля создавать базу данных mysql и табли...
Как сделать REST API на Symfony в PHP. Полный гайд для разработчиков backend
มุมมอง 2.9K7 หลายเดือนก่อน
Как сделать REST API на Symfony в PHP. Полный гайд для разработчиков backend
Блог на чистом PHP. Урок 6. Покупаем домен и хостинг и выкладываем сайт в интернет
มุมมอง 3557 หลายเดือนก่อน
Блог на чистом PHP. Урок 6. Покупаем домен и хостинг и выкладываем сайт в интернет
Symfony 6 курс. Урок 15. Создание и удаление связанных сущностей в Doctrine ORM
มุมมอง 5697 หลายเดือนก่อน
Symfony 6 курс. Урок 15. Создание и удаление связанных сущностей в Doctrine ORM
Собираем свой MVC микрофреймворк на PHP из готовых пакетов в composer
มุมมอง 6128 หลายเดือนก่อน
Собираем свой MVC микрофреймворк на PHP из готовых пакетов в composer
Symfony 6 курс. Урок 14. Пишем парсер в Symfony/Console и покрываем Unit тестами с mock объектами
มุมมอง 7938 หลายเดือนก่อน
Symfony 6 курс. Урок 14. Пишем парсер в Symfony/Console и покрываем Unit тестами с mock объектами
Использование утилиты mysqldump для восстановления базы MYSQL
มุมมอง 2068 หลายเดือนก่อน
Использование утилиты mysqldump для восстановления базы MYSQL
Блог на чистом PHP. Урок 5. Устанавливаем Websocket сервер на PHP и отправляем уведомления в браузер
มุมมอง 9268 หลายเดือนก่อน
Блог на чистом PHP. Урок 5. Устанавливаем Websocket сервер на PHP и отправляем уведомления в браузер
Symfony 6 курс. Урок 13. Написание Unit тестов в Symfony фреймворке
มุมมอง 5958 หลายเดือนก่อน
Symfony 6 курс. Урок 13. Написание Unit тестов в Symfony фреймворке
Блог на чистом PHP. Урок 4. Поля select и checkbox. Отправка почтовых уведомлений PHP.
มุมมอง 6319 หลายเดือนก่อน
Блог на чистом PHP. Урок 4. Поля select и checkbox. Отправка почтовых уведомлений PHP.
Symfony 6 курс. Урок 12. Использование событий (events) в Doctrine ORM
มุมมอง 8169 หลายเดือนก่อน
Symfony 6 курс. Урок 12. Использование событий (events) в Doctrine ORM
Тюнинг и оптимизация серверных настроек MYSQL
มุมมอง 29810 หลายเดือนก่อน
Тюнинг и оптимизация серверных настроек MYSQL
Блог на чистом PHP. Урок 3. Делаем админку. Постраничная навигация. Поля select и checkbox
มุมมอง 74810 หลายเดือนก่อน
Блог на чистом PHP. Урок 3. Делаем админку. Постраничная навигация. Поля select и checkbox
Блог на чистом PHP. Урок 2. Добавляем админку и комментарии, переезжаем на PDO MYSQL
มุมมอง 86810 หลายเดือนก่อน
Блог на чистом PHP. Урок 2. Добавляем админку и комментарии, переезжаем на PDO MYSQL
Symfony 6 курс. Урок 11. Symfony Messenger для обработки задач из очереди
มุมมอง 1.3K10 หลายเดือนก่อน
Symfony 6 курс. Урок 11. Symfony Messenger для обработки задач из очереди
Блог на чистом PHP. Урок 1. Создание сайта блога на PHP без фреймворков и ООП для начинающих
มุมมอง 3.5K11 หลายเดือนก่อน
Блог на чистом PHP. Урок 1. Создание сайта блога на PHP без фреймворков и ООП для начинающих

ความคิดเห็น

  • @Oleksii-k7
    @Oleksii-k7 5 วันที่ผ่านมา

    спасибо за ролик! лайк однозначно! очень странно следующее $blogs ->andWhere('b.user = :user') ->setParameter('user', $blogFilter->getUser()) ; В параметр передаем не ID пользователя $blogFilter->getUser()->getId() а целый обьект $blogFilter->getUser() . По факту все срабатывает правильно в запрос идет айдишник

    • @Oleksii-k7
      @Oleksii-k7 5 วันที่ผ่านมา

      В Symfony, при работе с Doctrine QueryBuilder, важно понимать, как работают отношения между сущностями. Если в вашем запросе вы передаете $blogFilter->getUser(), а не $blogFilter->getUser()->getId(), это связано с тем, как Doctrine обрабатывает объекты и их связи. Объяснение: Объекты и их идентификаторы: В запросах Doctrine, когда вы передаете сущность, например, $blogFilter->getUser(), Doctrine автоматически извлекает идентификатор этой сущности, чтобы построить SQL-запрос. Вместо того чтобы передавать только ID пользователя (например, getUser()->getId()), вы можете передать сам объект $blogFilter->getUser(), и Doctrine позаботится о том, чтобы использовать правильный идентификатор. Почему не нужно передавать getUser()->getId(): Doctrine поддерживает работу с объектами целых сущностей и автоматически извлекает их идентификаторы. Когда вы передаете объект $blogFilter->getUser(), Doctrine использует ID этого объекта для построения SQL-запроса, как если бы вы вручную передали его ID. Это позволяет сохранить удобство работы с объектами, не требуя дополнительных преобразований. Пример: Если у вас есть связь в Doctrine, например, между сущностями Blog и User, где Blog ссылается на User через поле user (предположим, это Many-to-One отношение), то Doctrine автоматически позаботится о преобразовании объекта User в его идентификатор при выполнении SQL-запроса: В этом случае Doctrine интерпретирует $blogFilter->getUser() как ссылку на объект User, а затем использует его ID при выполнении SQL-запроса. Если передавать getUser()->getId(): Если вы явно передадите $blogFilter->getUser()->getId(), Doctrine будет работать с этим значением как с обычным числовым параметром, и запрос будет выглядеть так: Это также будет работать, но это менее гибко и не использует преимущества работы с объектами Doctrine. Резюме: Передача $blogFilter->getUser(): Doctrine автоматически извлекает ID объекта User и использует его в запросе. Передача $blogFilter->getUser()->getId(): В этом случае вы явно передаете только идентификатор пользователя, что тоже работает, но не использует все возможности Doctrine для работы с объектами и их связями.

  • @save_the_UOC
    @save_the_UOC 6 วันที่ผ่านมา

    Нужно масштабировать экран. Не удобно смотреть мелкий шрифт.

  • @Dalarus368
    @Dalarus368 6 วันที่ผ่านมา

    Это видео, пожалуй, сложнее всех остальных. Зато уже есть представления, как можно реализовывать свои проекты

  • @unicoxr5tj417
    @unicoxr5tj417 7 วันที่ผ่านมา

    20 лет PHP разработчиком?) Михаил, а что-нибудь сложное на сеньорском будет?)

  • @romansulzhyk2578
    @romansulzhyk2578 24 วันที่ผ่านมา

    <?php error_reporting(E_ALL); ini_set('display_errors', 1); require_once "services/config.php"; session_start(); $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); if (isset($_GET['page']));{ switch ($_GET['page']) { case 'reg': require_once "modules/page_reg/controllers/reg.php"; break; case 'auth' : require_once "modules/page_auth/controllers/auth.php"; break; case 'projects' : require_once "modules/page_projects/index.php"; break; } die(); } require_once "src/templates/page_start/index.php"; ?>

  • @romansulzhyk2578
    @romansulzhyk2578 24 วันที่ผ่านมา

    Warning: Undefined array key "page" in /Applications/XAMPP/xamppfiles/htdocs/index.php on line 12 почему происходит эта ошибка

  • @grin888
    @grin888 27 วันที่ผ่านมา

    Ещё не смотрел видео, но уже видно что лайк автора под каждым комментарием, это знак качества Уверен будет интересно и понятно

  • @akai3870
    @akai3870 29 วันที่ผ่านมา

    от души

  • @StepsToEffectiveParentin-iz9xd
    @StepsToEffectiveParentin-iz9xd หลายเดือนก่อน

    чуть не захлебнулся

  • @pavelb5410
    @pavelb5410 หลายเดือนก่อน

    В сессии желательно хранить только id пользователя, и группу пользователя, и желательно в int формате хранить роль, а не как строку, что бы экономить память сервера, периодически обновлять идентификатор сессии, проверять активность пользователя, и если он неактивен 15 минут например, то завершать сессию, или предложить продолжить, и опять обновить идентификатор сессии, при каждом входе обновлять идентификатор сессии, устанавливать обязательно параметры сессии до старта сессии, параметры безопасности сессии гарантируют конфиденциальность сессии. При использовании сессий нужно использовать протокол https, а не http, нужно обезопасить сайт от XSS, атак, и CSRF атак путем формирования токенов. Такой подход гарантирует правильное распределение ресурсов, и не потребует использования Кеша данных пользователей.

  • @hesi7234
    @hesi7234 หลายเดือนก่อน

    Лайк с ноги😅

  • @kholodnov
    @kholodnov หลายเดือนก่อน

    Видео интересные, любопытный факт: Первое видео плейлиста - 100 лайков. Второе видео - 75 лайков. Третье видео - 45 лайков... Редкая птица долетит до середины Днепра! :) А потом у людей вопросы - почему программисты так много получают? :)

  • @vortex-dev
    @vortex-dev หลายเดือนก่อน

    туториал по elasticsearch и kibana не рабочий. Сертификаты и т.п. вымахиваются.

  • @romanmegagunko4650
    @romanmegagunko4650 หลายเดือนก่อน

    А нужна ли сейчас приписка ssl:// для $mail->Host = 'ssl://smtp.ВАШ_ДОМЕН';? В примерах на гитхабе у phpmailer не пишут ее

  • @angular-developer-e1t
    @angular-developer-e1t หลายเดือนก่อน

    Ты конечно крут но нужно акцентировать внимание на таких вещах как % extends. Я целый час не мог понять почему вдруг шаблон меняет стили на бутстраповские.

  • @vortex-dev
    @vortex-dev หลายเดือนก่อน

    И все же Circular References лучше выруливать группами и скриализацией ответов апи.

  • @BOJENKA360
    @BOJENKA360 หลายเดือนก่อน

    Спасибо!!!

  • @excstrange
    @excstrange หลายเดือนก่อน

    cделал в точности как у вас, но все равно пишет "запрещено" 403 ошибка

  • @Oleksii-k7
    @Oleksii-k7 หลายเดือนก่อน

    лайк под видео и под всеми коментами для продвижения

  • @Oleksii-k7
    @Oleksii-k7 หลายเดือนก่อน

    не понятно механизм каким образом свойство title класса BlogFilter заполняется . $form = $this->createForm(BlogFilterType::class, $blogFilter); dump($blogFilter->getTitle()); // не существует $form->handleRequest($request); dump($blogFilter->getTitle()); // уже существует А вот как и почему это происходит к сожалению не понятно . Хотелось бы узнать Спасибо за видео!

  • @romanmegagunko4650
    @romanmegagunko4650 หลายเดือนก่อน

    Используемый код в видео взят из какого то предыдущего ролика? Если да, немогли бы прикрепить ссылку на него. Очень нравится Ваш канал, использую его больше в качестве справочника, но на счет этого видео, т.к я новичок, конечно всё не уловил. Хотелось бы после просмотра видео, смочь самому реализовать функционал очередей на redis.

  • @JohnSmith-ks4kx
    @JohnSmith-ks4kx หลายเดือนก่อน

    Что за линукс используете?

  • @Oleksii-k7
    @Oleksii-k7 หลายเดือนก่อน

    Заметил еще особенность, что в таблице `tags_to_blog` , если добавить к ней AUTO_INCREMENT, можно наблюдать что при редактировании деталей блога, если теги не изменялись - в таблице tags_to_blog сначала происходит удаление существующих тегов а потом инсерт новых(с такими же значениями).

  • @Oleksii-k7
    @Oleksii-k7 หลายเดือนก่อน

    Отличный урок, затронуто много моментов. Единственное что не понравилось этот кусок кода - foreach ($items as $item) { $tag = $this->tagRepository->findOneBy(['name' => $item]); if (!$tag) { $tag = (new Tag())->setName($item); } $tags->add($tag); } получается в цикле происходит каждый раз обращение к таблице. $tag = $this->tagRepository->findOneBy(['name' => $item]); Может быть есть варианты использовать where in (1,2,3, etc) = то есть за один раз делаем поиск на существование всех тегов Спасибо огромное за контент . Очень познавательно

    • @bukachuk_php
      @bukachuk_php หลายเดือนก่อน

      В целом да, можно улучшить)

  • @Oleksii-k7
    @Oleksii-k7 หลายเดือนก่อน

    А правтильно с точки зрения правила единственной ответственности в Entity писать логику?

    • @bukachuk_php
      @bukachuk_php หลายเดือนก่อน

      Это скользкий вопрос, кто как любит, простую логику можно я думаю писать, чуть сложнее надо делать сервис класс, если хотите все красиво - отдельный класс

  • @fitter2boss72
    @fitter2boss72 2 หลายเดือนก่อน

    Спасибо за видео. Только что попал на ваш канал и посмотрел только это видео. Правильно ли я понял, что в Symfony нет возможности авторизации с помощью jwt при использовании формы логина из самого фреймворка? (форма лежит в темплейтах проекта Симфони - просто для пояснения, если вопрос уж совсем сумбурный)

    • @bukachuk_php
      @bukachuk_php หลายเดือนก่อน

      Для темплейтов по сути не нужен jwt, это если вы хотите отделить фронт и бэк

  • @DastanSultanov-o8f
    @DastanSultanov-o8f 2 หลายเดือนก่อน

    Автор канала пожалуйста сделайте видео где вы активируете phpstorm, как бесплатно ипользовать пхпшторм

  • @Oleksii-k7
    @Oleksii-k7 2 หลายเดือนก่อน

    хорошее видео. Приятно смотреть когда человек уверенно работает через консольку

  • @александркурдюков-й4я
    @александркурдюков-й4я 2 หลายเดือนก่อน

    Посмотрел и понял, нужен лайк и подписка)

  • @ildkdkf
    @ildkdkf 2 หลายเดือนก่อน

    разве readonly не в 8,1 появился?

    • @bukachuk_php
      @bukachuk_php 2 หลายเดือนก่อน

      Для свойств да, для класса 8.2

  • @NataliPanfilenka
    @NataliPanfilenka 2 หลายเดือนก่อน

    А можно залить код, который в видео, на гитхаб?

    • @bukachuk_php
      @bukachuk_php หลายเดือนก่อน

      Здесь попробуйте посмотреть github.com/bukachukcom/symfony6/tree/lesson11

  • @kholodnov
    @kholodnov 2 หลายเดือนก่อน

    Postman вроде стал платным. Кто што посоветует теперь? :)

    • @bukachuk_php
      @bukachuk_php 2 หลายเดือนก่อน

      Выбирайте что удобно testfully.io/blog/top-5-postman-alternatives/

  • @DastanSultanov-o8f
    @DastanSultanov-o8f 2 หลายเดือนก่อน

    При миграции выходит такая ошибка. Также получается говорит что таблицы теги тоже существуют. Может сделать ролик о миграциях. А то ошибки выходят

    • @bukachuk_php
      @bukachuk_php 2 หลายเดือนก่อน

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

  • @DastanSultanov-o8f
    @DastanSultanov-o8f 2 หลายเดือนก่อน

    Можно ли увидеть схему связей таблиц такие как многие ко многим или один ко многим

  • @kholodnov
    @kholodnov 2 หลายเดือนก่อน

    Спасибо, очень интересно, будет круто если как-нибудь получится записать финальное видео по выкладыванию проекта на prod, зафиналить серию :)

  • @vikont2448
    @vikont2448 2 หลายเดือนก่อน

    Слабо, очень слабо. Не рекомендую брать это в качестве примера. Заголовок видео должен быть другой. Полный гайд для уровней джуна. Взаимодействие с ДТО не раскрыто. Сервисы пишутся слабенькие. работа тяп ляп. В контроллере вся бизнес логика. Пересказ документации? Лучше бы показал, как нужно делать в современном мире. Зачем твиг в этом курсе? Для тех, кто использует старые версии😅😂 Рассказал бы лучше про нормальное грамотное построение архитектуры. Использование ДДД. Программирование от интерфейсов с применением разных паттернов. Такой твоей ерунды в ютубе навалом. на что ставка? Снова новички. Синьор решил сделать то, что другими уже пережевано, никакой изюминки. Треш кринж крч.

    • @bukachuk_php
      @bukachuk_php 2 หลายเดือนก่อน

      Это и есть для джунов 😅

    • @Vlad-y7l1r
      @Vlad-y7l1r 2 หลายเดือนก่อน

      Отличный коммент, давай ссылку на свой канал, наверняка ты сделал что то лучше. Кидай сюда, все посмотрим, или кроме соплей в адрес других ничего нет? Считаю если начал то, давай сделай как надо, сделай лучше. Или просто от нечего делать пишешь в инет свои умные слова.

  • @ktoje
    @ktoje 2 หลายเดือนก่อน

    Какие варианты, если надо сделать неограниченную вложенность (к примеру категории товаров)

    • @bukachuk_php
      @bukachuk_php 2 หลายเดือนก่อน

      Посмотрите в сторону nested sets или обычная рекурсия

    • @ktoje
      @ktoje 2 หลายเดือนก่อน

      @@bukachuk_phpзвучит круто, но как в таком случае будет выглядеть запись подобного маршрута в массиве маршрутов? Хотя бы какой-то пример плз

    • @bukachuk_php
      @bukachuk_php 2 หลายเดือนก่อน

      github.com/Rundiz/nested-set это посмотрите

  • @trex4426
    @trex4426 3 หลายเดือนก่อน

    Хорошие видео, без лишней воды. Хотелось бы увидеть парсинг с помощью либы DiDom и по возможности сделать видео по верстке товарных витрин и парсингу xml/csv фидов. с последующей загрузкой на товарные витрины.

  • @alexandr9900
    @alexandr9900 3 หลายเดือนก่อน

    уроки хорошие, спасибо! Не могли бы вы сделать ролик, как использовать xdebug в симфони?

  • @alexandr9900
    @alexandr9900 3 หลายเดือนก่อน

    интересно, насколько часто сейчас используется шаблонизатор в симфони, в реальной разработке, если в основном фронт подключается через апи?

  • @АлисаПекарева-м5ф
    @АлисаПекарева-м5ф 3 หลายเดือนก่อน

    и правда очень хорошо и доступно объясняете! спасибо

  • @alexandr9900
    @alexandr9900 3 หลายเดือนก่อน

    познавательно

  • @Tavda
    @Tavda 3 หลายเดือนก่อน

    Пожалуй более полезного видео по Symfony я для себя не встречал. Куча полезной информации.

  • @Tavda
    @Tavda 3 หลายเดือนก่อน

    Я предпочитаю для логов использовать journald. Это просто удобнее и можно настроить так, чтобы пользователь без прав мог читать логи приложения. Да и вообще удобнее в любом месте написать journalctl -t TAG -f и смотреть что там происходит. Но у меня голова кипит как нормально подружить monolog и systemd-journald. Ротация и фильтрация логов там вообще бонусом идёт. А ещё там можно настроить тот же тэг в конфиге nginx и видеть через journalctl какой запрос был, как symfony его обрабатывала. Очень удобно.

    • @bukachuk_php
      @bukachuk_php 3 หลายเดือนก่อน

      @@Tavda а как собирать такие логи с нескольких серверов?

    • @Tavda
      @Tavda 3 หลายเดือนก่อน

      @@bukachuk_php У меня не было такой задачи, но, вроде journald умеет по сети логи передавать.

  • @alexandr9900
    @alexandr9900 3 หลายเดือนก่อน

    как использовать NelmioApiDocBundle для создания документации ?

    • @bukachuk_php
      @bukachuk_php 3 หลายเดือนก่อน

      Там в принципе все просто, нужно поставить бандл по инструкции, прописать маршрут для документации и начать описаывать методы в контроллерах

  • @alexandr9900
    @alexandr9900 3 หลายเดือนก่อน

    интересный ролик

  • @puzzle2012
    @puzzle2012 3 หลายเดือนก่อน

    В целом курс очень крутой. Но тут уже потруднее было для восприятия. Очень быстро вы окна переключаете, прокручиваете экран, копируете, удаляете. Буквально кадр приходится ловить, чтобы увидеть что именно было скопировано. Может лучше было бы разбить на две части и помедленнее чуть-чуть подавать? ) Исправление неправильной миграции на 29:00 понадобилось из-за того, что изначально был взят пример кода из раздела "One-To-Many", а нужно было Many-ToMany, правильно я понял?

    • @bukachuk_php
      @bukachuk_php 3 หลายเดือนก่อน

      Да, скорее всего из-за неверного отношения, спасибо, про скорость понял, буду улучшать))

  • @ildkdkf
    @ildkdkf 3 หลายเดือนก่อน

    when@dev: &dev zenstruck_foundry: orm: reset: mode: migrate when@test: *dev

  • @DastanSultanov-g9o
    @DastanSultanov-g9o 3 หลายเดือนก่อน

    именно не понятен когда вы начали использовать xfce terminal что это вообще такое? И как вы скачали шаблон bootstrap 4.0 в минуте 3:04

    • @bukachuk_php
      @bukachuk_php 3 หลายเดือนก่อน

      Это терминал в линукс, просто командная строка как в Windows cmd.exe если у вас виндос, он вам не нужен. Скачать шаблоны можно здесь getbootstrap.com/docs/4.0/examples/

  • @DastanSultanov-g9o
    @DastanSultanov-g9o 3 หลายเดือนก่อน

    я не понимаю почему вы поменяли терминал на другой. Совсем потерялся я не понял. Каким образом вы поставили bootstrap и очень сложно этот момент

    • @bukachuk_php
      @bukachuk_php 3 หลายเดือนก่อน

      @@DastanSultanov-g9o на какой минуте?

    • @DastanSultanov-g9o
      @DastanSultanov-g9o 3 หลายเดือนก่อน

      @@bukachuk_php именно тот момент когда начали использовать xfce terminal что это такое вообще и каким образом скачать шаблон бутсрапа верси 4.0. на минуте 3:04

    • @DastanSultanov-g9o
      @DastanSultanov-g9o 3 หลายเดือนก่อน

      @@bukachuk_php именно не понятен когда вы начали использовать xfce terminal что это вообще такое? И как вы скачали шаблон bootstrap 4.0 в минуте 3:04

    • @Dalarus368
      @Dalarus368 6 วันที่ผ่านมา

      @@DastanSultanov-g9o это уже база идет) Этот курс предназначен не для новичков. Вы сами должны найти шаблон, скачать его и переместить все нужные файлы.