Библиотека собеса по PHP | вопросы с собеседований
3.17K subscribers
184 photos
6 videos
122 links
Вопросы с собеседований по PHP и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/9f3affba

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Что такое Mock? Где используют и зачем?

Mock (в переводе с английского — подделка, имитация) — это объект, который имитирует поведение реальных объектов в программе. Он создается на основе интерфейса или класса, чтобы предоставить возможность эмулировать определенные методы и поведение, которое необходимо для тестирования или разработки.

Моки особенно полезны при разработке и тестировании, когда некоторые зависимости программы еще не реализованы или недоступны. Они позволяют испытывать функциональность кода, не завися от реальных объектов, а также создавать ситуации, которые могут быть сложными или невозможными в реальной системе.

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

Использование моков упрощает создание тестовых сценариев, позволяет эффективно проверять код и обнаруживать потенциальные проблемы. Это также помогает ускорить процесс разработки, так как не требуется полная реализация всех зависимостей для тестирования каждого компонента отдельно.
Каково назначение фасадов в Laravel?

В Laravel фасады (Facades) предназначены для предоставления удобного и статически доступного интерфейса к службам контейнера внедрения зависимостей (Service Container). Они позволяют обращаться к классам сервиса без необходимости вручную создавать их экземпляры или внедрять зависимости.

Основные цели фасадов в Laravel:
🔸Упрощение доступа к сервисам — вместо сложных зависимостей можно использовать короткие и удобные статические методы.
🔸Скрытие сложной логики — за фасадом может скрываться сложный класс с множеством зависимостей.
🔸Гибкость и тестируемость — фасады в Laravel используют механизм Mockery, что делает возможным замену зависимостей при тестировании.

В примере вызов Cache::get() является фасадом для класса Illuminate\Cache\Repository, скрывая за собой его сложную реализацию.

Таким образом, фасады в Laravel помогают писать код, который проще читать, поддерживать и тестировать 🚀