💻 Переворачиваем биты 32-битного числа в PHP
Bitwise-операции 🔢— это основа низкоуровневого программирования, криптографии и дебага. Одна из распространённых задач — инверсия битов 32-битного беззнакового числа: заменяем все 0 на 1 и наоборот.
📌 Что такое 32-битное беззнаковое число?
Оно хранит значения от
🔹 Как инвертировать биты в PHP?
PHP поддерживает побитовые операции с операторами ~ (NOT) и ^ (XOR).
❌
✅
🔍 Примеры работы кода
✅ Вход: 0
🔹 Бинарный вид: 00000000000000000000000000000000
🔹 Инверсия: 11111111111111111111111111111111
🔹 Десятичный результат: 4294967295
✅ Вход: 2147483647
🔹 Бинарный вид: 01111111111111111111111111111111
🔹 Инверсия: 10000000000000000000000000000000
🔹 Десятичный результат: 2147483648
Библиотека пхпшника #буст
Bitwise-операции 🔢— это основа низкоуровневого программирования, криптографии и дебага. Одна из распространённых задач — инверсия битов 32-битного беззнакового числа: заменяем все 0 на 1 и наоборот.
📌 Что такое 32-битное беззнаковое число?
Оно хранит значения от
0
до 4294967295
(2³² — 1
). В отличие от знаковых чисел, здесь нет отрицательных значений.🔹 Как инвертировать биты в PHP?
PHP поддерживает побитовые операции с операторами ~ (NOT) и ^ (XOR).
❌
~
меняет все биты, но из-за особенностей PHP приводит к отрицательным значениям.✅
^
(XOR) с 0xFFFFFFFF даёт правильный результат.🔍 Примеры работы кода
✅ Вход: 0
🔹 Бинарный вид: 00000000000000000000000000000000
🔹 Инверсия: 11111111111111111111111111111111
🔹 Десятичный результат: 4294967295
✅ Вход: 2147483647
🔹 Бинарный вид: 01111111111111111111111111111111
🔹 Инверсия: 10000000000000000000000000000000
🔹 Десятичный результат: 2147483648
Библиотека пхпшника #буст
Что умеет Rector: пишем кастомные правила для автоматизации рефакторинга PHP-проектов
Если вам часто приходится сталкиваться с рефакторингом старых PHP-проектов, при этом их потребности выходят за пределы штатного набора правил, эта статья для вас.
🔗 Хабр
Библиотека пхпшника
Если вам часто приходится сталкиваться с рефакторингом старых PHP-проектов, при этом их потребности выходят за пределы штатного набора правил, эта статья для вас.
🔗 Хабр
Библиотека пхпшника
📊 Тестовые задания — любовь или боль?
По данным исследования, 81% IT-специалистов в России просто игнорируют вакансии с тестовыми заданиями. Программисты оказались самыми «неприступными» — только 19% согласны их выполнять.
😆 Только тестировщики, которые сами по долгу службы гоняют тесты, готовы пройти их ради работы (63%). Профессиональная эмпатия?
Как вы относитесь к тестовым заданиям при трудоустройстве? Делитесь мнением в комментах! 👇
🔥 — готов(-а) выполнить, если вакансия интересная
👍 — только если тестовое оплачивается
🌚 — игнорю такие вакансии сразу
🤔 — я уже делал(-а) тестовое, а его использовали в проде бесплатно
Библиотека пхпшника #междусобойчик
По данным исследования, 81% IT-специалистов в России просто игнорируют вакансии с тестовыми заданиями. Программисты оказались самыми «неприступными» — только 19% согласны их выполнять.
😆 Только тестировщики, которые сами по долгу службы гоняют тесты, готовы пройти их ради работы (63%). Профессиональная эмпатия?
Как вы относитесь к тестовым заданиям при трудоустройстве? Делитесь мнением в комментах! 👇
🔥 — готов(-а) выполнить, если вакансия интересная
👍 — только если тестовое оплачивается
🌚 — игнорю такие вакансии сразу
🤔 — я уже делал(-а) тестовое, а его использовали в проде бесплатно
Библиотека пхпшника #междусобойчик
💻 Подборка новостей по PHP за неделю:
🔎 Релиз CakePHP 4.5.10
Команда CakePHP объявила о выходе версии 4.5.10. Это технический релиз, исправляющий несколько проблем, о которых сообщило сообщество.
GitHub
🔎 Расширение JetBrains Xdebug Helper для браузера
JetBrains представила официальное расширение Xdebug Helper для Chrome, обеспечивающее беспроблемную отладку PHP-кода.
🔎 Laravel 12.3: Новый тип приведения JSON Unicode
Команда Laravel выпустила версию 12.3.0, включающую новый тип приведения JSON Unicode, проверку статуса связанных хранилищ в команде about, поддержку нативных типов JSON и JSONB в схемах SQLite и другие улучшения.
🔎 Неделя Symfony #951 (17–23 марта 2025 года)
На этой неделе в предстоящей версии Symfony 7.3 обновлена конфигурация по умолчанию для исключения расширений контейнера, сущностей и сообщений Messenger при регистрации сервисов, а также внесены изменения, связанные с сбросом сервисов.
Библиотека пхпшника #свежак
🔎 Релиз CakePHP 4.5.10
Команда CakePHP объявила о выходе версии 4.5.10. Это технический релиз, исправляющий несколько проблем, о которых сообщило сообщество.
GitHub
🔎 Расширение JetBrains Xdebug Helper для браузера
JetBrains представила официальное расширение Xdebug Helper для Chrome, обеспечивающее беспроблемную отладку PHP-кода.
🔎 Laravel 12.3: Новый тип приведения JSON Unicode
Команда Laravel выпустила версию 12.3.0, включающую новый тип приведения JSON Unicode, проверку статуса связанных хранилищ в команде about, поддержку нативных типов JSON и JSONB в схемах SQLite и другие улучшения.
🔎 Неделя Symfony #951 (17–23 марта 2025 года)
На этой неделе в предстоящей версии Symfony 7.3 обновлена конфигурация по умолчанию для исключения расширений контейнера, сущностей и сообщений Messenger при регистрации сервисов, а также внесены изменения, связанные с сбросом сервисов.
Библиотека пхпшника #свежак
Forwarded from Библиотека задач по PHP | тесты, код, задания
🚀 Exceptional Validation — новый подход к валидации данных в Symfony
Теперь валидация бизнес-правил смещается от использования атрибутов и кастомных валидаторов, являющихся частью инфраструктурного кода, к применению бизнес-исключений непосредственно в клиентском коде.
Преимущества такого подхода:
🔸 Упрощение валидации: Отказ от сложных механизмов, таких как группы валидации и кастомные expressions, делает процесс проверки данных более прозрачным и управляемым.
🔸 Гибкость в различных контекстах: Возможность легко адаптировать логику валидации в зависимости от конкретного контекста без необходимости создания сложных конструкций.
🔸 Совместимость: Библиотека интегрируется с Symfony Messenger и amphp, обеспечивая бесшовную работу в существующих проектах.
🔸 Стандартные сообщения об ошибках: После обработки исключений библиотека возвращает список нарушений ограничений (constraint violations) в формате Symfony Validator.
🔗 Github
Библиотека пхпшника #инструменты
Теперь валидация бизнес-правил смещается от использования атрибутов и кастомных валидаторов, являющихся частью инфраструктурного кода, к применению бизнес-исключений непосредственно в клиентском коде.
Преимущества такого подхода:
🔸 Упрощение валидации: Отказ от сложных механизмов, таких как группы валидации и кастомные expressions, делает процесс проверки данных более прозрачным и управляемым.
🔸 Гибкость в различных контекстах: Возможность легко адаптировать логику валидации в зависимости от конкретного контекста без необходимости создания сложных конструкций.
🔸 Совместимость: Библиотека интегрируется с Symfony Messenger и amphp, обеспечивая бесшовную работу в существующих проектах.
🔸 Стандартные сообщения об ошибках: После обработки исключений библиотека возвращает список нарушений ограничений (constraint violations) в формате Symfony Validator.
🔗 Github
Библиотека пхпшника #инструменты
🎭 Dev Memes: 1 апреля, а баги всё те же
Сегодня день официально разрешённого троллинга — и мы не могли пройти мимо. Собрали подборку мемов для Пхпшника, которые вызывают лёгкое желание уволиться.
👉 Всё это — из нашего мемного канала «Библиотека IT-мемов»
Библиотека пхпшника
Сегодня день официально разрешённого троллинга — и мы не могли пройти мимо. Собрали подборку мемов для Пхпшника, которые вызывают лёгкое желание уволиться.
👉 Всё это — из нашего мемного канала «Библиотека IT-мемов»
Библиотека пхпшника
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
💾 Как выбрать стратегию кэширования: разбор 7 популярных алгоритмов
Кешировать нужно с умом. И нет, LRU — не серебряная пуля.
В статье вас ждёт разбор алгоритмов: LRU, LFU, FIFO и другие
– Примеры, где каждый работает лучше
– Плюсы и минусы подходов
– Практические советы по выбору стратегии
Если проектируете систему с большими нагрузками или оптимизируете производительность — материал будет как раз.
➡️ Читать статью
🐸 Библиотека шарписта
Кешировать нужно с умом. И нет, LRU — не серебряная пуля.
В статье вас ждёт разбор алгоритмов: LRU, LFU, FIFO и другие
– Примеры, где каждый работает лучше
– Плюсы и минусы подходов
– Практические советы по выбору стратегии
Если проектируете систему с большими нагрузками или оптимизируете производительность — материал будет как раз.
Please open Telegram to view this post
VIEW IN TELEGRAM
В 2017 году был запущен проект Bref с целью запуска PHP в бессерверной среде на AWS Lambda.
В 2020 году начались замеры количества запросов (или заданий, cron-задач, вызовов и т.д.), которые обрабатываются с его помощью каждый месяц. Это было сделано для того, чтобы показать AWS, что PHP заслуживает большего внимания и поддержки.
Ежемесячно данные добавлялись в электронную таблицу, и их количество постоянно растет. Как упомянуто в заголовке, на сегодняшний день с помощью PHP на Lambda обрабатывается более 40 миллиардов запросов в месяц.
Методика замеров описана в документации.
Кратко: каждые 100 вызовов среды выполнения отправляется несколько байтов данных через UDP. Эти данные полностью анонимны (вот содержимое пакета:
Наличие этой метрики оказалось крайне полезным во взаимодействии с AWS — теперь проект Bref воспринимается ими гораздо серьезнее. Примерно 1 из 1000 вызовов AWS Lambda — это PHP с Bref.
AWS даже внедрила свои внутренние метрики для отслеживания использования PHP (впрочем, и других языков тоже), и их данные совпадают с тем, что было получено в рамках проекта, что подтверждает правильность измерений.
Кроме того, удалось интегрировать счётчик метрик в режиме реального времени (почти реального времени, данные кэшируются на несколько минут) на главной странице проекта: bref.sh
В 2020 году начались замеры количества запросов (или заданий, cron-задач, вызовов и т.д.), которые обрабатываются с его помощью каждый месяц. Это было сделано для того, чтобы показать AWS, что PHP заслуживает большего внимания и поддержки.
Ежемесячно данные добавлялись в электронную таблицу, и их количество постоянно растет. Как упомянуто в заголовке, на сегодняшний день с помощью PHP на Lambda обрабатывается более 40 миллиардов запросов в месяц.
Методика замеров описана в документации.
Кратко: каждые 100 вызовов среды выполнения отправляется несколько байтов данных через UDP. Эти данные полностью анонимны (вот содержимое пакета:
Invocations_100:1|c\nLayer_fpm_100:1|c
), а использование UDP гарантирует, что передача занимает всего несколько микросекунд (она неблокирующая). Эти байты доходят до небольшого сервера на EC2, который увеличивает счетчик в CloudWatch.Наличие этой метрики оказалось крайне полезным во взаимодействии с AWS — теперь проект Bref воспринимается ими гораздо серьезнее. Примерно 1 из 1000 вызовов AWS Lambda — это PHP с Bref.
AWS даже внедрила свои внутренние метрики для отслеживания использования PHP (впрочем, и других языков тоже), и их данные совпадают с тем, что было получено в рамках проекта, что подтверждает правильность измерений.
Кроме того, удалось интегрировать счётчик метрик в режиме реального времени (почти реального времени, данные кэшируются на несколько минут) на главной странице проекта: bref.sh
⚙️ Улучшаем производительность кода с AI
Обнаружили в профилировщике тормозящий код? Попробуйте этот промпт, чтобы AI помог вам оптимизировать его:
📝 Промпт:
💡 Дополнительные возможности:
— Добавьте
— Добавьте
— Добавьте
💬 Какие инструменты вы используете для профилирования кода?
Библиотека пхпшника #буст
Обнаружили в профилировщике тормозящий код? Попробуйте этот промпт, чтобы AI помог вам оптимизировать его:
📝 Промпт:
Analyze the following PHP code and suggest optimizations for better performance. Identify bottlenecks, improve memory usage, and recommend alternative approaches.
// Вставьте ваш код здесь
💡 Дополнительные возможности:
— Добавьте
Refactor it using modern PHP features (e.g., OPcache, JIT, Fibers)
, если хотите использовать новейшие возможности PHP.— Добавьте
Optimize it for concurrency using Swoole or ReactPHP
, если важна многопоточность и высокая нагрузка.— Добавьте
Suggest a profiling strategy using Xdebug or Blackfire
, если нужна диагностика.💬 Какие инструменты вы используете для профилирования кода?
Библиотека пхпшника #буст
👨🏻💻 Исследование IT-аудитории Proglib 2025: зарплаты, технологии, профессии
Кто такой современный разработчик в 2025 году? Актуальное исследование портрета IT-специалистов: зарплаты, технологии, специализации и демография разработчиков.
➡️ Вся статистика и детали — здесь
Библиотека программиста #свежак
Кто такой современный разработчик в 2025 году? Актуальное исследование портрета IT-специалистов: зарплаты, технологии, специализации и демография разработчиков.
Библиотека программиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM