
Массивы в PHP 8.x: разбор на примере обработки заказов
Берём реальную задачу — свести выгрузку заказов из маркетплейса в отчёт — и разбираем, какие функции работы с массивами дают чистый код, а какие тихо съедают память и время.

Берём реальную задачу — свести выгрузку заказов из маркетплейса в отчёт — и разбираем, какие функции работы с массивами дают чистый код, а какие тихо съедают память и время.

Массив в PHP — это не то, чем кажется программисту с опытом Java или C. Разбираем, как он устроен, какие функции нужны с первого дня и где новичок теряет данные.

Как за 20 минут поставить PHP на Windows или macOS, запустить встроенный сервер и открыть первый скрипт в браузере. С проверками на каждом шаге и разбором типичных ошибок.

За 20–30 минут вы поставите PHP на Windows, macOS или Linux, проверите версию в терминале и запустите первый скрипт через встроенный сервер. Разбираем ошибки, на которых спотыкаются почти все.

За 20–30 минут вы поставите PHP 8.3, проверите его из командной строки и увидите первую страницу в браузере через встроенный сервер. Без Apache и лишней обвязки.

Тест, который дёргает реальный API, падает от чужого таймаута и медленный. Разбираем четыре способа изолировать сеть в pytest: monkeypatch, responses, respx и запись реальных ответов через VCR.

Библиотеку пересобрали, приложение не тронули — и оно падает с SIGSEGV без единой ошибки компоновщика. Разбираем, почему ABI ломается тихо и что нельзя менять в публичном заголовке разделяемой библиотеки.

Цикл суммирования float ускорился в 6 раз без изменения алгоритма — только за счёт SIMD. Разбираем, когда компилятор векторизует сам, когда молчит и как это проверить в ассемблере.

Lock-free очередь на acquire/release теряла элементы под нагрузкой раз в несколько часов. Разбираем, как memory_order и ABA привели к порче данных и что показал анализ.

Проект собирается 40 минут вместо 8, и виноват не компилятор, а один <code>#include</code> в общем заголовке. Разбираем, что искать на ревью, чтобы билд не разрастался.

Корутины C++20 обещают дешёвую асинхронность, но под нагрузкой всплывают аллокации на каждый вызов, срыв inline-оптимизаций и гонки при возобновлении не на том потоке. Разбираем механизм и что мерить.

Концепты — не синтаксический сахар над enable_if. Они меняют порядок разрешения перегрузок, дают частичное упорядочивание по ограничениям и ломаются на неатомарных выражениях. Разбираем механизм.