Laravel Contracts и PHP интерфейсы. Использование в рамках концепции Service Container
Сегодняшний ролик будет посвящен контрактам в Ларавел (Laravel Contracts). Изучим что это такое и как их использовать
#php#laravel#cutcode
---------------------------------------------------------------------------------
❗️❗️❗️как делать сложные сайты на laravel? Это просто с cutcode!
Поддерживай мой проект -
Угостить меня кофе -
🤖🤖🤖Мой помощник Тэйлор готов выдать тебе подарок. Забирать тут -
---------------------------------------------------------------------------------
⏰ Таймкоды:
00:00 Введение
00:38 Что такое интерфейсы в PHP
01:35 Когда нужно использовать интерфейсы
02:32 Laravel Contracts
03:10 Laravel Contracts в рамках концепции Service Container
03:53 Подведение итогов
Всех поклонников Laravel я приветствую на канале Cutcode! И сегодняшний ролик будет посвящен контрактам Laravel: что это такое, как их использовать и в целом концепцию контрактов, так как многие читают документацию, думают что это какой-то отдельный особенный интерфейс, не понимая сути. Но в целом здесь совершенно ничего сложного. Мы немножко отойдем в сторону и поговорим для начала о интерфейсах PHP, для тех кто мало ли не знаком с ними.
Что такое вообще в целом интерфейсы? Они никак не связаны с Laravel, они пришли у нас из PHP. Как написано в самой документации интерфейсы объектов позволяют создавать код, который указывает какие методы должен реализовать класс. То есть по факту это и есть природа контрактов как в реальной жизни - то есть если мы посмотрим на интерфейс, скажем например есть MessengerNotificatorInterface у него есть метод send и все классы которые будут реализовать этот интерфейс должны также реализовывать метод send. То есть они как бы подписывают контракт как и люди, на то что обязаны выполнять какие-либо правила и в данном случае реализовывать метод send. У нас сам интерфейс выглядит следующим образом: имеет одну функцию она у нас пустая - просто указано название, какие аргументы и что возвращает и классы которые реализует.
Также в документации указано когда нужно использовать интерфейсы, что позволит разработчикам создавать объекты разных классов которые могут использоваться взаимозаменяемо. Как раз то что у нас есть и в примере. У нас есть интерфейс MessengerNotificator уведомлениях и юзерам в какие-либо мессенджеры и 2 класса которые его реализуют, как раз таки они взаимозаменяемы. И как раз уходя уже в Laravel и если вы помните тему сервис-контейнера (на канале есть об этом ролик). То мы можем сделать инъекции в любой контроллер с просто интерфейсом Messenger нотификатор и забиндить в сервис-провайдере что этот интерфейс у нас ссылается на какой либо определенный класс, который его реализуют и работать уже внутри с этим классом. И впоследствии его простым способом заменять на какой-либо другой. Ну либо динамически заменять в процессе.
То же самое если мы посмотрим на Laravel контракты, как раз таки, то это не что иное как просто интерфейсы. Просто обычный PHP интерфейс. Просто если исторически отходить назад, когда Laravel только разрабатывался, Тейлор решил называть интерфейс в рамках Laravel фреймворка контрактами, так как это более понятно для человека, как раз как я уже говорил что тот же самый контракт и классы его подписывают, на то что они обязаны реализовывать методы в этом контракте. Вот и все в по сути что касается контрактов - это всего лишь интерфейса.
И также они работают в рамках концепции сервис контейнера. Скажем мы здесь можем указать контракт инкриптор - тот самый интерфейс, который мы только что смотрели. И здесь уже по умолчанию в Laravel будет забиндено, что это у нас string инкриптор и здесь мы уже будем работать с классом, который реализовывает интерфейс и который забинден по умолчанию в Laravel на этот интерфейс. То же самое как мы делали в сервис контейнере с нотификаторами - где меняли иногда slug иногда telegram и это нам помогает в разработке приложения в дальнейшем масштабирование приложения, то есть это удобный инструмент.
---------------------------------------------------------------------------------
📹 делитесь этим видео с друзьями:
🔔 подпишитесь на YouTube-канал:
📼 Курс по Laravel с нуля:
Laravel Contracts и PHP интерфейсы. Использование в рамках концепции Service Container
---------------------------------------------------------------------------------
🔗 наш сайт:
📷 наш instagram:
📱 Наш telegram-канал:
2 views
889
280
2 years ago 00:05:58 1
Interfaces in Laravel: Practical Example of Exchange Rates
2 years ago 00:37:37 1
Налоговый дайджест за март 2023 / Tax digest for March 2023
2 years ago 00:02:10 1
Advanced Laravel: Service Container & Providers (Contracts & Implementations)
2 years ago 07:54:01 5
Я 💛 Фронтенд!
3 years ago 00:04:34 32
Laravel Contracts и PHP интерфейсы. Использование в рамках концепции Service Container
3 years ago 00:10:10 29
Laravel Contracts and PHP Interfaces: Explained with Two Examples
4 years ago 00:29:18 2
Laravel. Сервисы, контракты и внедрение зависимостей
4 years ago 00:17:00 12
Demo: Laravel Contract Management Mini-System with QuickAdminPanel