Mikhail Bukachuk
Mikhail Bukachuk
  • Видео 87
  • Просмотров 96 677
PHP Unit тестирование. Урок 5. Покрываем роутер юнит тестами с моками и стабами
Видео "Покрываем роутер юнит тестами с моками и стабами" посвящено написанию юнит тестов для маршрутизатора (роутера) в приложении. Основное внимание уделяется использованию моков и стабов для создания изолированных и контролируемых условий тестирования.
Установка PHPUnit: ruclips.net/video/YQHe1g3Ug8Q/видео.html
Дата провайдеры в PHPUnit: ruclips.net/video/vPdFXKDOUwk/видео.html
setUp и tearDown: ruclips.net/video/IIF-pwcNeoE/видео.html
00:00 Вступление и обзор маршрутизатора
01:00 Установка Phpunit с помощью composer
03:00 Первый запуск phpunit команды
05:00 Пишем первый unit тест метода Route::getPattern
07:30 Создаем data provider для тест метода
10:20 Тестируем метод getUri
13:00 Тестируем кла...
Просмотров: 170

Видео

Переменные среды env файлов Symfony фреймворка
Просмотров 214День назад
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео более детально рассмотрим вопросы переменных сред файла .env. Также выясним, как мы можем трансформировать данные из env файлов. Также рассмотрим зачем нужны среды env test prod Что такое переменные среды и для чего они нужны. Примеры использования переменных среды в различных сценариях. Как Symfony использ...
Как определить страну и город пользователя по IP адресу
Просмотров 33414 дней назад
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео рассмотрим пример определения страны и города посетителя сайта по его IP адресу. Для определения будем использовать бесплатную базу MaxMind и пакет PHP для чтения данных из этой базы 00:00 Где и как скачать базы Maxmind 01:10 Устанавливаем с помощью composer компонент geoip2/geoip2 01:20 Разбираемся с работ...
Создаем alias в bash Linux для быстрого запуска команд
Просмотров 10514 дней назад
Открытый канал в телеге - 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 с использованием ООП
Просмотров 36621 день назад
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob Сегодня напишем маршрутизацию на PHP без привлечения фреймворков, но с использованием ООП и регулярных выражений. Напишем простейший пример роутинга с использованием объектно-ориентированного программирования. У нас будет класс маршрута, класс коллекции маршрутов, класс их сопоставления. 00:00 Разбираемся с принципом ра...
Аутентификация JWT в Symfony с помощью firebase/jwt
Просмотров 20421 день назад
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео сделаем аутентификацию по JWT токену но без использования бандла LexikJWTAuthenticationBundle. Для кодирования и декодирования JWT возьмем пакет firebase/jwt и прикрутим его к Symfony. Разбемся как сделать свой класс аутентификации. Также немного поучимся как решать возникшие проблемы с Symfony. 00:00 Что б...
Базовые знания администратора Linux
Просмотров 1,2 тыс.28 дней назад
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео кратко пробежимся по базовым операциям в операционных системах Linux на примере Debian/Ubuntu. Как подключиться к серверу Linux. Обзор файловой системы, переход по каталогам, права доступа файлов и каталогов. Использование sudo и su для операций суперпользователя Linux. Использование cat для просмотра файло...
Как правильно добавить или изменить колонку в большой таблице Mysql
Просмотров 17328 дней назад
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob Добавление или изменение колонок в большой таблице MySQL может быть деликатным процессом, особенно когда таблица содержит большое количество данных. Это руководство как сделать это правильно, какие проблемы могут возникнуть и как их можно решить. Рассмотрим использование Percona toolkit и поменяем тип колонки в большой ...
Создание и удаление связанных сущностей в Symfony / Doctrine
Просмотров 170Месяц назад
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео добавим еще одну сущность к блогу, содержащую meta данные страницы блога. Научимся создавать вложенные формы, а также разберемся с настройками каскадных операций Doctrine с помощью параметров cascade persist и remove 00:00 Добавление сущности для мета данных страницы блога 02:00 Связывание сущностей Blog и ...
Как работают cookie и сессии в PHP
Просмотров 535Месяц назад
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео подробно разберем механизмы работы COOKIE и SESSION в PHP. Узнаем зачем использовать cookie и сессии. Разберем основные их отличия, а также примеры использования. Использование безопасных флагов для cookie (HttpOnly, Secure). Настройка времени жизни сессий в зависимости от требований безопасности. Сделаем п...
Навигация по файлам в Linux с помощью Midnight commander
Просмотров 444Месяц назад
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob Midnight Commander (MC) - это мощный текстовый файловый менеджер для Unix-подобных систем, таких как Linux. MC предлагает удобный интерфейс для навигации по файловой системе, копирования, перемещения, удаления файлов и выполнения других операций. В этом видео показано, как эффективно использовать файловый менеджер Midni...
Аутентификация и авторизация с помощью JWT в Symfony PHP фреймворке
Просмотров 385Месяц назад
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео мы переделаем механизм аутентификации и авторизации с помощью JWT в Symfony. Для этого воспользуемся готовым бандлом LexikJWTAuthenticationBundle. Установим данный Symfony bundle. Разберемся с его настройками и опробуем его в работе. 00:00 Что такое JWT токен 01:58 JSON логин в Symfony с помощью сессий для ...
Как подключиться к серверу Linux по SSH протоколу
Просмотров 2932 месяца назад
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео мы разберем момент подключения к серверу Linux по протоколу SSH. Сначала сделаем это из Windows с помощью программы Putty и пароля, далее сгенерируем SSH private и public ключи и научимся ими пользоваться для подключения к серверу без пароля. Потом аналогично проделаем такую же операцию из Linux, если вы хо...
Логирование в Symfony PHP с помощью Monolog. Подключаем filebeat, elasticsearch и Kibana
Просмотров 5532 месяца назад
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob Видеоурок посвящен настройке и использованию системы логирования в Symfony с помощью Monolog, а также интеграции с инструментами Filebeat, Elasticsearch и Kibana для анализа и визуализации логов. Вот основные шаги и темы, которые могут быть освещены в видео: Введение в логирование с Monolog в Symfony: Обзор Monolog как ...
Делаем простой интернет магазин на PHP без ООП для начинающих
Просмотров 7083 месяца назад
Открытый канал в телеге - t.me/PHPnoob Чат взаимопомощи PHP - t.me/php_noob В этом видео сделаем простой интернет магазин на голом языке программирования PHP без ОПП с использованием базы данных mysql. Разберемся с тем, как работает PHP, как работают формы в PHP и как обрабатывать данные формы. Как реализовать простейший фильтр товаров на PHP. Научимся с нуля создавать базу данных mysql и табли...
Как сделать REST API на Symfony в PHP. Полный гайд для разработчиков backend
Просмотров 1,4 тыс.3 месяца назад
Как сделать REST API на Symfony в PHP. Полный гайд для разработчиков backend
Блог на чистом PHP. Урок 6. Покупаем домен и хостинг и выкладываем сайт в интернет
Просмотров 2813 месяца назад
Блог на чистом PHP. Урок 6. Покупаем домен и хостинг и выкладываем сайт в интернет
Symfony 6 курс. Урок 15. Создание и удаление связанных сущностей в Doctrine ORM
Просмотров 3323 месяца назад
Symfony 6 курс. Урок 15. Создание и удаление связанных сущностей в Doctrine ORM
Собираем свой MVC микрофреймворк на PHP из готовых пакетов в composer
Просмотров 4893 месяца назад
Собираем свой MVC микрофреймворк на PHP из готовых пакетов в composer
Symfony 6 курс. Урок 14. Пишем парсер в Symfony/Console и покрываем Unit тестами с mock объектами
Просмотров 5003 месяца назад
Symfony 6 курс. Урок 14. Пишем парсер в Symfony/Console и покрываем Unit тестами с mock объектами
Использование утилиты mysqldump для восстановления базы MYSQL
Просмотров 1653 месяца назад
Использование утилиты mysqldump для восстановления базы MYSQL
Блог на чистом PHP. Урок 5. Устанавливаем Websocket сервер на PHP и отправляем уведомления в браузер
Просмотров 6273 месяца назад
Блог на чистом PHP. Урок 5. Устанавливаем Websocket сервер на PHP и отправляем уведомления в браузер
Symfony 6 курс. Урок 13. Написание Unit тестов в Symfony фреймворке
Просмотров 3464 месяца назад
Symfony 6 курс. Урок 13. Написание Unit тестов в Symfony фреймворке
Блог на чистом PHP. Урок 4. Поля select и checkbox. Отправка почтовых уведомлений PHP.
Просмотров 5095 месяцев назад
Блог на чистом PHP. Урок 4. Поля select и checkbox. Отправка почтовых уведомлений PHP.
Symfony 6 курс. Урок 12. Использование событий (events) в Doctrine ORM
Просмотров 5495 месяцев назад
Symfony 6 курс. Урок 12. Использование событий (events) в Doctrine ORM
Тюнинг и оптимизация серверных настроек MYSQL
Просмотров 2596 месяцев назад
Тюнинг и оптимизация серверных настроек MYSQL
Блог на чистом PHP. Урок 3. Делаем админку. Постраничная навигация. Поля select и checkbox
Просмотров 6046 месяцев назад
Блог на чистом PHP. Урок 3. Делаем админку. Постраничная навигация. Поля select и checkbox
Блог на чистом PHP. Урок 2. Добавляем админку и комментарии, переезжаем на PDO MYSQL
Просмотров 6656 месяцев назад
Блог на чистом PHP. Урок 2. Добавляем админку и комментарии, переезжаем на PDO MYSQL
Symfony 6 курс. Урок 11. Symfony Messenger для обработки задач из очереди
Просмотров 8466 месяцев назад
Symfony 6 курс. Урок 11. Symfony Messenger для обработки задач из очереди
Блог на чистом PHP. Урок 1. Создание сайта блога на PHP без фреймворков и ООП для начинающих
Просмотров 2,5 тыс.6 месяцев назад
Блог на чистом PHP. Урок 1. Создание сайта блога на PHP без фреймворков и ООП для начинающих

Комментарии

  • @user-hs5qk7ge7m
    @user-hs5qk7ge7m 3 дня назад

    Сасибо. Актуальные уроки. Очень хотелось курс по api platform

  • @akhmad_goytinski
    @akhmad_goytinski 4 дня назад

    Спасибо за видео! Было бы хорошо, если код хорошо видно было бы???

    • @bukachuk_php
      @bukachuk_php 4 дня назад

      @@akhmad_goytinski да, я попозже увеличил шрифт =)

  • @Rosalinnnnd
    @Rosalinnnnd 5 дней назад

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

  • @disconnect3763
    @disconnect3763 6 дней назад

    Михаил спасибо! Четкое видео, давно хотел понять для чего эти тесты нужны.

  • @GEELSRC
    @GEELSRC 7 дней назад

    Хорошее видео! Спасибо

  • @evlampiy5673
    @evlampiy5673 8 дней назад

    3:47 не нужно в автолоад тащить тесты, для тестов есть autoload-dev. Вы же на прод не будете деплоить тесты, так зачем они в автолоаде ?

    • @bukachuk_php
      @bukachuk_php 8 дней назад

      @@evlampiy5673 в целом да здесь я видимо ошибся

  • @evlampiy5673
    @evlampiy5673 8 дней назад

    То, о чем вы говорите на 2:27 это не модульные тесты, это функциональные или интеграционные (там не совсем из контекста понятно). Модульные тесты (юнит--тесты) -это то, о чем вы говорите в этом видео, когда тестируется один изолированный класс, которому вместо зависимостей подсовывают моки

    • @bukachuk_php
      @bukachuk_php 8 дней назад

      @@evlampiy5673 это юнит тесты в моем понимании, вообще это холиварная тема, их называют кому как нравится и везде разные формулировки, по мне так модуль это группа классов, юнит - один класс. В целом по мне так не так важно как они называются, а как они реализованы=)

    • @evlampiy5673
      @evlampiy5673 8 дней назад

      @@bukachuk_php Вы из питона пришли ? Это ведь там функциональные тесты почему-то называют модульными (юнит) тестами, благодаря джанге. В php стеке по этому поводу нет никакого разночтения - есть юнит-тесты, есть функциональные тесты

    • @bukachuk_php
      @bukachuk_php 8 дней назад

      ​@@evlampiy5673не питоном так баловался очень давно, я просто давным давно читал за это но не в рамках только php а в общем, возможно поэтому каша в голове 😅

    • @evlampiy5673
      @evlampiy5673 8 дней назад

      @@bukachuk_php Тут на самом деле все очень просто - "модуль" это прямой перевод английского "unit" и когда появились первые переводы изложения методологии тестирования, то поначалу "unit tests" так и переводили "модульные тесты", а потом в обиход вошел прямой англицизм "юнит-тест". Поэтому "модульные тесты" это эквивалент "юнит-тесты"

    • @bukachuk_php
      @bukachuk_php 7 дней назад

      ​@@evlampiy5673но вообще unit переводится не модуль, а составная часть, единица, элемент. Модуль по английски module, и внимание на описание модуля на английском, each of a set of standardized parts or independent units that can be used to construct a more complex structure, such as an item of furniture or a building. "ships are now built in modules rather than built in a whole from the base up" То есть Модуль состоит из юнитов

  • @user-em3jj2eb9w
    @user-em3jj2eb9w 8 дней назад

    Отличное видео урок по тестированию кода. Хорошо что для теста использовался свой рабочий код и можно просмотреть логику как его тестировать. Было полезна информация по использованию моков для более сложной логики, а не просто создать один мок-объект без методов.

  • @marpusik1277
    @marpusik1277 8 дней назад

    Спасибо 🙏

  • @disconnect3763
    @disconnect3763 11 дней назад

    Михаил спасибо, как никогда это очень актуально! 🎯

  • @StasKostushkin
    @StasKostushkin 11 дней назад

    Спасибо огромное

  • @solvex8304
    @solvex8304 12 дней назад

    Спасибо! А можно ещё видео про переход с 5.7 на 8 версию?

  • @user-wq1fm5zb6o
    @user-wq1fm5zb6o 12 дней назад

    Спасибо, за ваши усилия по созданию видео на канале, полезно! Планируете про архитектуру записать видео, например микросервисная архитектура на примере symfony либо другого фреймворка ?

  • @user-gc6yd5bd5m
    @user-gc6yd5bd5m 12 дней назад

    круто

  • @marpusik1277
    @marpusik1277 14 дней назад

    спасибо 🙏

  • @alexkogotko3981
    @alexkogotko3981 15 дней назад

    Спасибо за контент!

  • @nikfill-ff9hz
    @nikfill-ff9hz 15 дней назад

    А есть ли смысл тогда вообще использовать Memcached если redis такой крутой) Попадались ли тебе проекты с Memcached в проде?

    • @bukachuk_php
      @bukachuk_php 15 дней назад

      Давно использовал memcache когда не было редиса. В целом redis мощнее по функционалу, memcache просто хранилище ключ => строка, а Redis может вместо строки хранить и списки и объекты итд, что лучше. Memcache хорошо подходит для больших значений, немного лучше работает с распределением памяти, но обычно это не критично, поэтому выбирают Redis. Тут можно почитать более детально stackoverflow.com/questions/10558465/memcached-vs-redis

  • @nikfill-ff9hz
    @nikfill-ff9hz 15 дней назад

    пришлось чутка повозиться с инсертами в базу не знал как это сделать используя pdo и биндинг, думаю еще буду пересматривать и розбираться лучше. ps. чёто сложно уже становиться))

  • @disconnect3763
    @disconnect3763 16 дней назад

    Спасибо Михаил!

  • @user-du6ns4ww6o
    @user-du6ns4ww6o 16 дней назад

    Да Михаил это очень большая тема с классом reflection, как и упомянутый dependency injection di так и получение свойств и методов классов, тема очень большая особенно ее любят современные фреймворки.

  • @user-uf2ur4bw7m
    @user-uf2ur4bw7m 17 дней назад

    О, круто!

    • @user-uf2ur4bw7m
      @user-uf2ur4bw7m 17 дней назад

      Я такую же историю делал с git log - чтобы можно было удобно дерево выводить

  • @nikfill-ff9hz
    @nikfill-ff9hz 17 дней назад

    оо наконецто настрою автообновление сертификатов на сервере))

  • @nikfill-ff9hz
    @nikfill-ff9hz 17 дней назад

    не совсем понял что делает parent:: можете помочь разобраться? Мы модифицируем поведение класса Command?

    • @bukachuk_php
      @bukachuk_php 17 дней назад

      @@nikfill-ff9hz вызываем метод родительского класса, мы расширяем функционал родительского, сначала вызываем родительский метод потом дописываем свой функционал

  • @nikfill-ff9hz
    @nikfill-ff9hz 17 дней назад

    Получаться приватные методы не такие и приватные, если хорошо знаешь php ;D

  • @nikfill-ff9hz
    @nikfill-ff9hz 17 дней назад

    Так вот как эта магия работает)) А сколько можно сэкономить если реализовать на чистом js? Например у меня весь бэкенд это две формы зачем мне подключать целую библиотеку. Или это слишком геморно?

    • @bukachuk_php
      @bukachuk_php 17 дней назад

      @nikfill-ff9hz проще библиотеку тк она решает много проблем, например той же кроссбраузерности, а на чистом js это ложится на вас

  • @nikfill-ff9hz
    @nikfill-ff9hz 19 дней назад

    так а зачем тогда использовать сторонние библиотеки если в php уже есть всё подключив один модуль?

    • @bukachuk_php
      @bukachuk_php 19 дней назад

      @@nikfill-ff9hz они делают этот процесс проще, меньше кода

  • @nikfill-ff9hz
    @nikfill-ff9hz 19 дней назад

    Спасибо базированая база)) Я бы очень обрадовался если появился видосик в дополнение как работать с конфликтами правильно. Постоянно стресс если чёто ломаеться в гите...

  • @romanmed9035
    @romanmed9035 20 дней назад

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

    • @bukachuk_php
      @bukachuk_php 20 дней назад

      @@romanmed9035 нагрузка может небольшая, inno db настройки точно помогают, размер пула

    • @romanmed9035
      @romanmed9035 19 дней назад

      @@bukachuk_php спасибо. непонятно то что иногда провалы бывают. сервер арендованный в облаке.

    • @bukachuk_php
      @bukachuk_php 19 дней назад

      @@romanmed9035 slow log включите поставите 5 секунд, возможно иногда стартуют запросы без индексов и грузят сервер кратковременно, этот лог может помочь их выявить

    • @romanmed9035
      @romanmed9035 19 дней назад

      @@bukachuk_php спасибо. вот такого не подумал.

  • @egorrrrich
    @egorrrrich 20 дней назад

    отличный урок! Очень помогло разобраться с тем чертополохом, который я развел в файле до этого😁

  • @nikfill-ff9hz
    @nikfill-ff9hz 20 дней назад

    Наверное самый удобный язык программирования для работы с датами почти с коробки)

    • @bukachuk_php
      @bukachuk_php 20 дней назад

      @@nikfill-ff9hz я думаю нет, раньше кстати не было этих классов, в других языках тоже есть

  • @nikfill-ff9hz
    @nikfill-ff9hz 20 дней назад

    самый лучший менеджер пакетов который я видел)

  • @unknownuser___8229
    @unknownuser___8229 20 дней назад

    при попытке генерации пары ключей вылезает такая ошибка In GenerateKeyPairCommand.php line 143: error:80000003:system library::No such process в чем может быть проблема? на стаковерфлоу похожую проблему нашёл, там её решили следующим образом: вручную генерится приватный ключ: openssl genrsa -out config/jwt/private.pem и публичный: openssl rsa -in config/jwt/private.pem -pubout > config/jwt/public.pem мне это тоже не помогло (возможно я в этом моменте что-то не так сделал) хотя openssl в php.ini у меня включен

    • @bukachuk_php
      @bukachuk_php 19 дней назад

      github.com/lexik/LexikJWTAuthenticationBundle/issues/842 проверьте версию PHP там было вроде какая-то проблема, плюс проверьте установлен ли openssl в этом треде почитайте там вроде причина в версиях

  • @narutoHacked
    @narutoHacked 21 день назад

    Супер видео!

  • @romanmegagunko4650
    @romanmegagunko4650 22 дня назад

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

  • @romanmed9035
    @romanmed9035 23 дня назад

    неплохо было бы показать как использовать вит для сборки фронтенда, в том числе для перехода на него с енкора при использовании реакта.

  • @fintheenergy6454
    @fintheenergy6454 23 дня назад

    Почему нету видео по laravel?

    • @bukachuk_php
      @bukachuk_php 22 дня назад

      Надо будет надо))

  • @marpusik1277
    @marpusik1277 23 дня назад

    спасибо 🙏

  • @user-gc6yd5bd5m
    @user-gc6yd5bd5m 24 дня назад

    Круто спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • @StasKostushkin
    @StasKostushkin 24 дня назад

    Огромное спасибо за уроки, Михаил, свежие и подробные пособия по Симфони на русском языке!

  • @nikfill-ff9hz
    @nikfill-ff9hz 24 дня назад

    Интересно как писали код без неймспейсов)) Походу он вообще не поддерживаемый.

    • @bukachuk_php
      @bukachuk_php 24 дня назад

      Они появились в версии 5.3.0, но в то время поддержка ООП была очень скудная и большинство кода было процедурным, даже не помню как оно было без них))

  • @nikfill-ff9hz
    @nikfill-ff9hz 24 дня назад

    Поставил плагин в vscode который форматирует по PSR после сохранения файла тож удобненько.

    • @bukachuk_php
      @bukachuk_php 24 дня назад

      Можно еще поставить pre-commit hook в github и туда прикрутить github.com/PHP-CS-Fixer/PHP-CS-Fixer чтобы он делал это автоматом перед каждым коммитом, его кстати возможно прикрутить к VSCode, к PHPStorm точно можно

    • @nikfill-ff9hz
      @nikfill-ff9hz 23 дня назад

      @@bukachuk_php я совсем забыл про эту опцию)

  • @vasilich_bear
    @vasilich_bear 25 дней назад

    Михаил, спасибо Вам за понятное и внятное объяснение

  • @nikfill-ff9hz
    @nikfill-ff9hz 25 дней назад

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

    • @bukachuk_php
      @bukachuk_php 25 дней назад

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

  • @nikfill-ff9hz
    @nikfill-ff9hz 25 дней назад

    На один шаг ближе к пониманию ООП)

  • @user-lk9kc9vf9t
    @user-lk9kc9vf9t 26 дней назад

    Супер, сколько еще будет уроков?

    • @bukachuk_php
      @bukachuk_php 26 дней назад

      Думаю будет много))

  • @nikfill-ff9hz
    @nikfill-ff9hz 26 дней назад

    Добавил кнопочки входа и выхода из админки используя знания из 13 урока заодно повторил закрепил)) Я так понимаю файл config.php мы не пушим в репозиторий? p.s. спасибо что есть bootstrap

    • @bukachuk_php
      @bukachuk_php 26 дней назад

      Обычно конфигурацию не пушат в репозиторий и не хранят в репозитории, это конечно совсем примитивная манера программирования, но в целом подходы одинаковые. Обычно найстроки хранятся либо на сервере либо в специальном хранилище, откуда их достают при развертывании приложения. Тут можно почитать подробнее 12factor.net/ru/config

  • @marpusik1277
    @marpusik1277 26 дней назад

    спасибо 🙏

  • @marpusik1277
    @marpusik1277 26 дней назад

    спасибо 🙏

  • @marpusik1277
    @marpusik1277 26 дней назад

    спасибо 🙏

  • @nikfill-ff9hz
    @nikfill-ff9hz 27 дней назад

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