Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11K subscribers
1.54K photos
26 videos
26 files
4.28K links
Все самое полезное для пхпшника в одном канале.

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

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

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
How to: Web3 на PHP (Symfony 7.4) — без магии и костылей

Миф «PHP умер» не подтверждается уже больше десяти лет.
Миф «PHP не подходит для Web3» — из той же категории.

Пока Node.js доминирует во фронтенде dApp’ов, PHP + Symfony стабильно закрывают инфраструктурную часть Web3:
🔸 индексируют on-chain данные в off-chain хранилищах
🔸 управляют enterprise-кошельками и ключами
🔸 связывают Web2-бизнес-логику с Web3-протоколами

В статье разобрана production-ready Web3-интеграция на Symfony 7.4 и PHP 8.3+:
🔹 работа с блокчейном через JSON-RPC
🔹 взаимодействие с ERC-20 контрактами
🔹 аутентификация через Sign-In with Ethereum (без паролей)
🔹 обработка on-chain событий через Symfony Messenger

👉 Полный разбор архитектуры и кода — в статье

Библиотека пхпшника
👍2🥰2
Хуки свойств в PHP: геттеры и сеттеры не нужны

В PHP 8.4 появилась долгожданная возможность — хуки свойств.
Это встроенная логика чтения и записи значения прямо в объявлении свойства. Без отдельных методов, без шаблонных getSomething() и setSomething().
Код становится компактнее, выразительнее и проще для сопровождения.

🤔 В чём была проблема раньше
До этого у разработчиков было всего два варианта:
🧱 классический подход с приватными полями и методами доступа;
⚙️ promoted-properties из конструктора — удобно, но без логики.
Минус был общий:
негде аккуратно разместить валидацию;
сложно добавить логирование изменений;
неудобно реализовать ленивые вычисления;
класс быстро разрастался вспомогательными методами.

Что изменилось с хуками
Теперь PHP позволяет перехватывать:
👀 момент чтения свойства;
✍️ момент записи значения.

При этом:
📌 снаружи используется привычный доступ к свойству;
🧠 внутри — чётко определённое место для логики;
🧩 в одном классе можно сочетать обычные свойства и свойства с хуками.

🧮 Виртуальные свойства
PHP 8.4 позволяет создавать свойства без собственного хранилища.

Такие свойства:
🪄 не занимают память;
🔄 вычисляются при каждом обращении;
🧩 выступают как интерфейс к другим данным объекта.

Полезно для:
объединённых представлений данных;
вычисляемых значений;
упрощения публичного API модели.

🧬 Наследование и контроль поведения
Хуки полностью поддерживают наследование:
🔁 поведение можно расширять или переопределять;
🔒 отдельные хуки можно пометить как final;
🧱 контроль инвариантов остаётся на стороне базового класса.
По возможностям это сопоставимо с методами, но на уровне свойств.

⚠️ Важные ограничения
Есть особенности, которые важно учитывать:
🚫 хуки несовместимы с readonly-свойствами;
🔗 изменение по ссылке может обойти логику записи;
🧪 не все внутренние функции PHP вызывают хуки одинаково.
Это не ошибки, а архитектурные компромиссы.

🔗 Хабр

Библиотека пхпшника
2