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
👉 Полный разбор архитектуры и кода — в статье
Библиотека пхпшника
Миф «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 появилась долгожданная возможность — хуки свойств.
Это встроенная логика чтения и записи значения прямо в объявлении свойства. Без отдельных методов, без шаблонных
Код становится компактнее, выразительнее и проще для сопровождения.
🤔 В чём была проблема раньше
До этого у разработчиков было всего два варианта:
🧱 классический подход с приватными полями и методами доступа;
⚙️ promoted-properties из конструктора — удобно, но без логики.
Минус был общий:
❌ негде аккуратно разместить валидацию;
❌ сложно добавить логирование изменений;
❌ неудобно реализовать ленивые вычисления;
❌ класс быстро разрастался вспомогательными методами.
✨ Что изменилось с хуками
Теперь PHP позволяет перехватывать:
👀 момент чтения свойства;
✍️ момент записи значения.
При этом:
📌 снаружи используется привычный доступ к свойству;
🧠 внутри — чётко определённое место для логики;
🧩 в одном классе можно сочетать обычные свойства и свойства с хуками.
🧮 Виртуальные свойства
PHP 8.4 позволяет создавать свойства без собственного хранилища.
Такие свойства:
🪄 не занимают память;
🔄 вычисляются при каждом обращении;
🧩 выступают как интерфейс к другим данным объекта.
Полезно для:
объединённых представлений данных;
вычисляемых значений;
упрощения публичного API модели.
🧬 Наследование и контроль поведения
Хуки полностью поддерживают наследование:
🔁 поведение можно расширять или переопределять;
🔒 отдельные хуки можно пометить как
🧱 контроль инвариантов остаётся на стороне базового класса.
По возможностям это сопоставимо с методами, но на уровне свойств.
⚠️ Важные ограничения
Есть особенности, которые важно учитывать:
🚫 хуки несовместимы с
🔗 изменение по ссылке может обойти логику записи;
🧪 не все внутренние функции PHP вызывают хуки одинаково.
Это не ошибки, а архитектурные компромиссы.
🔗 Хабр
Библиотека пхпшника
В PHP 8.4 появилась долгожданная возможность — хуки свойств.
Это встроенная логика чтения и записи значения прямо в объявлении свойства. Без отдельных методов, без шаблонных
getSomething() и setSomething().Код становится компактнее, выразительнее и проще для сопровождения.
🤔 В чём была проблема раньше
До этого у разработчиков было всего два варианта:
🧱 классический подход с приватными полями и методами доступа;
⚙️ promoted-properties из конструктора — удобно, но без логики.
Минус был общий:
❌ негде аккуратно разместить валидацию;
❌ сложно добавить логирование изменений;
❌ неудобно реализовать ленивые вычисления;
❌ класс быстро разрастался вспомогательными методами.
✨ Что изменилось с хуками
Теперь PHP позволяет перехватывать:
👀 момент чтения свойства;
✍️ момент записи значения.
При этом:
📌 снаружи используется привычный доступ к свойству;
🧠 внутри — чётко определённое место для логики;
🧩 в одном классе можно сочетать обычные свойства и свойства с хуками.
🧮 Виртуальные свойства
PHP 8.4 позволяет создавать свойства без собственного хранилища.
Такие свойства:
🪄 не занимают память;
🔄 вычисляются при каждом обращении;
🧩 выступают как интерфейс к другим данным объекта.
Полезно для:
объединённых представлений данных;
вычисляемых значений;
упрощения публичного API модели.
🧬 Наследование и контроль поведения
Хуки полностью поддерживают наследование:
🔁 поведение можно расширять или переопределять;
🔒 отдельные хуки можно пометить как
final;🧱 контроль инвариантов остаётся на стороне базового класса.
По возможностям это сопоставимо с методами, но на уровне свойств.
⚠️ Важные ограничения
Есть особенности, которые важно учитывать:
🚫 хуки несовместимы с
readonly-свойствами;🔗 изменение по ссылке может обойти логику записи;
🧪 не все внутренние функции PHP вызывают хуки одинаково.
Это не ошибки, а архитектурные компромиссы.
🔗 Хабр
Библиотека пхпшника
❤2