Атрибуты в PHP. Какую пользу даёт применение attributes

  Рет қаралды 7,213

Просто о Laravel. CutCode

Просто о Laravel. CutCode

9 ай бұрын

Атрибуты в PHP позволяют добавлять структурированные синтаксические метаданные классам, методам, переменным. В сегодняшнем ролике мы с вами разберем какую пользу дают атрибуты в PHP, когда их применять, как писать собственные атрибуты и взаимодействовать с ними.
🎁 Для вас есть подарок, забирайте - cutcode.dev/l/4pxn 🎁
#attributes#laravel#cutcode
---------------------------------------------------------------------------------
🚀📹👨‍🏫 Как насчет прокачки своих навыков с помощью наших обучающих видеокурсов по web-разработке? Переходи на мой сайт 👇
learn.cutcode.dev/?
❗️❗️❗️Присоединяйся к нашему комьюнити в телеграм - там и советом помогут и много интересного - cutcode.dev/l/icwf
---------------------------------------------------------------------------------
Коллеги, всех приветствую на канале CutCode! И сегодня в рубрике для тех, кто не знал мы разберем с вами PHP атрибуты. Они все чаще появляются в популярных пакетах тех кто использует Livewire 3 я думаю уже увидели что атрибутами он просто напичкан. То же самое со всеми пакетами от spatie и я думаю в laravel версии 11 их тоже будет навалом. Но многие не понимают как это все работает эта магия. Просто применяют скажем как в примере здесь в Livewire, указали rule, правила валидации по большему счету просто скопировали перенесли к себе работает и все хорошо. А в сегодняшнем ролике мы с вами разберем какую пользу они дают, когда их применять, как писать собственные атрибуты и взаимодействовать с ними. Все это мы сейчас с вами разберем погнали! Итак друзья для начала давайте посмотрим как это выглядит. Добавим свойства title и через атрибут укажем что оно у нас заблокировано. Изменить его уже в процессе нельзя будет. Для этого воспользуемся синтаксисом атрибутов - решетка далее внутри указываем необходимый нам класс Locked. И все. Исходя из документации свойства будет заблокировано, далее его нельзя будет изменить все будет работать мы будем довольны этой магией. Если мы заглянем под капот, то увидим вот такой пустой класс, который также имеет сверху тот же самый синтаксис, где указано что это у нас атрибут. И как бы если продолжить не вникать то это полная магия. Давайте прежде чем мы с вами будем разбираться подумаем о том, какую это пользу несет. До атрибутов мы бы с вами действовали следующим образом - скорее всего у нас был бы какой-то определенный здесь массив заблокированных свойств и мы бы с вами здесь перечисляли все свойства. То же самое у нас было бы еще дополнительно возможно с правилами валидации. Мы бы добавили Rules, опять бы добавили здесь title и указали все что нам требуется. Либо у нас сам бы title был определенным объектом и он бы в себе уже содержал все эти дополнительные свойства и характеристики. С атрибутами как видите мы изменили стиль изменили подход и можно прямо здесь указывать несколько.
---------------------------------------------------------------------------------
📹 делитесь этим видео с друзьями:
• Атрибуты в PHP. Какую ...
🔔 подпишитесь на KZbin-канал: kzbin.info?s...
📼 Курс по Laravel с нуля:
• Курс по Laravel 8 обуч...
Атрибуты в PHP. Какую пользу даёт применение attributes
---------------------------------------------------------------------------------
🔗 наш сайт: cutcode.dev/?
📱 Наш telegram-канал: t.me/laravel_cutcode

Пікірлер: 27
@pavel3570
@pavel3570 19 күн бұрын
Всегда лайк ! Крутая подача , просто и без сахара ! Умение объяснять - это немаловажное умение, я бы сказал - дар ! Развивайте блог , это единственный канал к которому возвращаюсь каждый божий день
@CutCodeRu
@CutCodeRu 19 күн бұрын
Спасибо за такие слова!
@user-od9gc4cl3e
@user-od9gc4cl3e 9 ай бұрын
очень аккуратно нужно работать с аттрибутами. Когда они появились - я провёл нагрузочное тестирование. С включенными аттрибутами через рефлексию - скорость ответа увеливается в 2 раза на каждые 500 RPS. С включенным opcache ситуация лучше - проблемы начинаются после 1000 одновременных запросов. Считаю, что проблема связана с тем, что рефлексия аттрибутов работает через постоянное чтение файлов. Через пол года я повторил тест на NVME - проблемы начинались после 1,5-1,7к RPS. Для админки интернет магазина кошачьих консервов - нормальное решение. На хайлоаде - не думаю.
@borisn879
@borisn879 9 ай бұрын
Рефлексия - это дорого!
@IvanBorzenkov
@IvanBorzenkov 5 ай бұрын
Так что, ларавел до сих пор не научился в кэширование метаданных? Как-бы эту проблему еще давно решили, когда на доктрин аннотациях сидели.
@user-wz9vl9li7q
@user-wz9vl9li7q 9 ай бұрын
Автор! Спасибо тебе большое! Теперь я понял!
@CutCodeRu
@CutCodeRu 9 ай бұрын
🙏
@dprhmk
@dprhmk 9 ай бұрын
Интересно Впервые вижу эти атрибуты в php Иду читать об этом Спасибо
@CutCodeRu
@CutCodeRu 9 ай бұрын
👌
@kamil19862307
@kamil19862307 9 ай бұрын
Спасибо! Намного понятнее становится, когда опытный человек объясняет.
@CutCodeRu
@CutCodeRu 9 ай бұрын
😎
@ArmArt_studio
@ArmArt_studio 9 ай бұрын
Здравстуйте, как в Муншайн реализованы мултиязычные модели? Есть где-то демо?
@CutCodeRu
@CutCodeRu 9 ай бұрын
Зайдите в документацию, в раздел пакеты и там плагин по мультиязычности
@qoonmax
@qoonmax 9 ай бұрын
А зачем создавать сам класс атрибута? Очевидно первым на ум приходит, это необходимость иметь класс, чтобы вызвать getInstance, и получить прокинутые параметры. Если только для этого, то такое себе. По сути это что-то вроде типа, он не несет никакой реализации. Если бы класс создавать не нужно было, в целом ничего не изменилось бы. Или мб я что-то не понял?
@borisn879
@borisn879 9 ай бұрын
Class добавляет строгости при указании аргументов, валидацию, логику?
@mrzlanx5328
@mrzlanx5328 9 ай бұрын
Чем больше мы имеем понятий, тем сложнее эти понятия поддерживать. (в данном случае предсказывать поведение основанное на атрибутах) Мне лично атрибуты вообще не нравятся, надеюсь такого не будет в laravel никогда. А за видос лайк
@CutCodeRu
@CutCodeRu 9 ай бұрын
👌
@user-ho4cx2fj5o
@user-ho4cx2fj5o 9 ай бұрын
А не нарушаем ли мы SOLID , когда у нас и валидация(через атрибуты), и создание модели, и роутинг в одном месте хранится ?
@CutCodeRu
@CutCodeRu 9 ай бұрын
Нарушаем
@qoonmax
@qoonmax 9 ай бұрын
Если реализация (реакция на атрибут), будет в сервисе SearchService, он занимается только поиском и ничем более, и там же меняет свое поведение если в клиентском коде над метод search установлен какой-то атрибут, разве это нарушение? У класса одна задача, работа с поиском, можно конечно сказать что он занимается тем что отслеживает состояние клиентского кода, и ищет атрибуты, но это можно делегировать другому классу.
@borisn879
@borisn879 9 ай бұрын
Классический пример аттрибутов - реализация eventListener.
@borisn879
@borisn879 9 ай бұрын
В Доктрине аттрибуты весьма удобные и к месту. Стало гораздо легче читать.
@user-do6hk5md9n
@user-do6hk5md9n 4 ай бұрын
Я вот лично не понимаю моду на эти атрибуты. Я понимаю почему это удобно, но мне кажется, что это неоправданный оверхед очень большой. А я не люблю оверхеды.
@Mr.Capone-
@Mr.Capone- 9 ай бұрын
Я поделился со всеми алкашами из 3го подъезда! Поехали)))) kzbin.info/www/bejne/nH-pq5mtgbJqaMU
@den-rad
@den-rad 9 ай бұрын
Сейчас курю питон, и там есть классная вещь как декоратор - функция, которая оборачивает базовую функцию. Интересно, как бы такое сделать на PHP ?
@goriaev
@goriaev 9 ай бұрын
так? function func2(callable $func1) { $func1(); echo 'site'; } func2(function () { echo 'www'; });
@echo9815
@echo9815 4 ай бұрын
Вобще не понял, откуда то icon взялся, какие то атрибуты только для метода
Дженерики в PHP
14:02
Просто о Laravel. CutCode
Рет қаралды 8 М.
PHP Attributes - Simple Router With Attributes - Full PHP 8 Tutorial
22:59
3M❤️ #thankyou #shorts
00:16
ウエスP -Mr Uekusa- Wes-P
Рет қаралды 14 МЛН
That's how money comes into our family
00:14
Mamasoboliha
Рет қаралды 9 МЛН
路飞被小孩吓到了#海贼王#路飞
00:41
路飞与唐舞桐
Рет қаралды 66 МЛН
Жайдарман | Туған күн 2024 | Алматы
2:22:55
Jaidarman OFFICIAL / JCI
Рет қаралды 1,7 МЛН
Разбор Error Handling в Laravel. Под капотом Laravel
25:50
Просто о Laravel. CutCode
Рет қаралды 2,1 М.
Running PHP 1.0 in 2024
7:05
Roman Pronskiy
Рет қаралды 19 М.
JIT в PHP 8: Просто о сложном
19:26
Andrey Lozunov - Fullstack Web Developer
Рет қаралды 13 М.
Автозагрузка классов в PHP
16:11
Evgeniy Kuvshinov
Рет қаралды 7 М.
PHP Attributes 50 Minute Tutorial
50:12
Gary Clarke
Рет қаралды 9 М.
LazyCollections и PHP генераторы. Как применять на практике
7:25
Знакомство с атрибутами в PHP
15:07
Аматор DED
Рет қаралды 229
3M❤️ #thankyou #shorts
00:16
ウエスP -Mr Uekusa- Wes-P
Рет қаралды 14 МЛН