Рубрика «php»

Архитектура высоконагруженных проектов на WordPress: Глубокая оптимизация ядра, базы данных и уровней кэширования

Существует распространенный миф, что WordPress не подходит для enterprise-сегмента и проектов с высокой нагрузкой (HighLoad). В реальности проблема кроется не в самом ядре платформы, а в архитектурных антипаттернах, избыточном использовании плагинов, неоптимизированной структуре базы данных (модель EAV) и отсутствии грамотной стратегии многоуровневого кэширования.

Читать полностью »

В нашей небольшой веб-студии решили попробовать передать AI-агентам часть рутинной работы с сайтами. Работаем мы в основном с MODX 2 и 3, поэтому мне поручили подобрать подходящий MCP-компонент. Задача выглядела несложной: посмотреть существующие решения, сравнить возможности и выбрать, что лучше подойдет.

Читать полностью »

Зачем вообще рождались языки после 2010 года

Почти каждый язык 2010-х появился потому, что у конкретной компании накопилась проблема, которую старые языки не решали:

  • Go (Google) — C++ собирался часами, конкурентность была болью. С нейронками простой и читаемый язык стал только ценнее.

  • Rust (Mozilla) — около 70% уязвимостей в больших кодовых базах на C++ оказывались ошибками работы с памятью. Боль никуда не делась, а теперь за ней следят ещё и государства.

  • Dart (Google) — должен был заменить JavaScript в браузере. Не вышло, выжил как язык Flutter.

  • KotlinЧитать полностью »

Про N+1 в Laravel обычно пишут три строки про with() и расходятся. Я собрал небольшой стенд на Laravel 13 и SQLite, воспроизвёл проблему, посчитал запросы для каждого способа лечения и проверил, что «не ловится» режимом запрета ленивой загрузки. Отдельно разобрал места, где eager loading не помогает или сам создаёт нагрузку. Все числа в статье получены на этом стенде на искусственных данных.

Стенд и условия

Читать полностью »

21 октября 2026 года вышли патчи PHP против PHP2Shell: две критические уязвимости, которые позволяют без авторизации выполнить код на сервере. Обновить PHP нужно в любом случае. Но если через уязвимость утекут персональные данные пользователей, компании грозит штраф до 15 млн руб. И в суде будут смотреть, есть ли документы о том, когда и как вы закрыли уязвимость. Ниже — технический чек-лист с юридическими пояснениями: что сделать, что сохранить и когда звать юриста.

Коротко об уязвимости

Читать полностью »

Привет! Пишу свою первую статью. Уже больше десяти лет работаю с PHP: делаю админки, CRM, интернет-магазины и внутренние системы.

Почти в каждом проекте рано или поздно появляется запрос «чтобы без перезагрузки». И рядом с PHP вырастает второй кусок: фронтенд со сборщиком, node_modules, API между двумя частями, валидация в двух местах, а состояние то на сервере, то в браузере. Меня это достало, и я создал rig. Это PHP-фреймворк, где интерфейс откликается сразу, а приложение остаётся обычным PHP-проектом. Расскажу, как он устроен, что уже работает и где его лучше не использовать.

Как выглядит компонент

Читать полностью »

У нас есть консьюмер очереди на PHP, который раньше раз в пять-шесть часов падал по OOMKilled на лимите 2 ГиБ. Сообщения при этом не терялись: Kubernetes поднимал под, и консьюмер дочитывал очередь, так что снаружи проблема была почти незаметна. Но регулярное падение по памяти — не норма, и мы решили докопаться до причины.

Спойлер: виноват оказался не наш код и не библиотеки, а поведение самого PHP после одной из ошибок расширения ext-soap. Баг известен с 2016 года, issue в php-src открыт с 2022-го, но описания того, как он выглядит в живом проекте и как его найти, я не нашёл. Поэтому пишу.

PHP 8.4, Symfony 6.4, RabbitMQ, Kubernetes. Примеры кода упрощены.Читать полностью »

Получатель записал заказ в базу, но соединение оборвалось до того, как отправитель получил ответ. Нужно ли отправлять вебхук повторно? Если не отправить, можно потерять событие. Если отправить, можно создать второй заказ.

С такого случая удобно начинать разговор о доставке. HTTP-клиент умеет сделать POST, но по таймауту не скажет, что произошло на другом конце соединения. Решать, когда повторять запрос и как обрабатывать повтор, придётся обеим сторонам.

Читать полностью »

SVG4 — каталог векторных иконок

SVG4 — каталог векторных иконок

Больше года назад я запустил SVG4Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js