TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #5004 2.99K
PHP 8.4 Property Hooks: Можно ли теперь избавиться от геттеров/сеттеров?

В будущей версии PHP 8.4 появится новая функция — «хуки для свойств», позволяющая добавлять логику при обращении к свойствам класса для чтения или записи данных. Это значит, что теперь можно отказаться от использования приватных свойств и публичных методов для их обработки (геттеров и сеттеров).

Здесь изучается влияние этой функции на производительность. В частности, интересует, влияет ли использование хуков вместо геттеров/сеттеров на скорость работы приложения и стоит ли отказываться от привычных методов доступа к данным.

Основные результаты и выводы:

✔️Производительность геттеров и сеттеров: Исследование показало, что вызовы геттеров и сеттеров занимают незначительную часть времени выполнения, даже при работе с большим объемом данных, и практически не влияют на общую производительность приложения.

✔️Сравнение производительности: В тестах с хуками и геттерами/сеттерами разница в скорости оказалась минимальной — около 9%. Это подтверждает, что производительность не должна быть решающим фактором при выборе между хуками и геттерами/сеттерами.

✔️Основные причины использования геттеров/сеттеров: Обычно геттеры и сеттеры применяют не для повышения скорости, а для ограничения доступа к данным и контроля за структурой класса. С хуками такие ограничения также можно реализовать, добавляя нужную логику при доступе к свойству.

✔️Итоги тестирования альфа-версии: Во время ранних тестов PHP 8.4 производительность хуков была ниже, чем у геттеров. Это указывало на необходимость оптимизации, и в итоге в RFC были внесены улучшения, благодаря которым сейчас хуки в PHP 8.4 работают быстрее.
  • 👍 13
More from @phpproglib
  1. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  2. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  3. Sep 30, 2026🐸 Библиотека пхпшника
  4. Sep 29, 2026💡 Laravel-фича, которая спасает тесты от случайных запросов Http::preventStrayRequests()…
  5. Sep 28, 2026🔐 ramsey/uuid — UUID без самописного кода Библиотека помогает генерировать, парсить и вал…
  6. Sep 28, 2026🤔 Что выведет код? ❤️ — 1 🔥 — 2 👍 — 12 👾 — Fatal error 👇 Правильный ответ (нажми, что…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →