Ленивые итераторы в JavaScript: руководство с примерами
Полное руководство по хелперам итераторов в JavaScript: как ленивые вычисления заменяют цепочки.map().filter() и экономят память. Примеры, сравнение с массивами, подводные камни.Заметки о Frontend, Backend и немного DevOps. В основном о PHP, Laravel, JavaScript, CSS, тестировании кода и настройке серверов.
.map().filter() и экономят память. Примеры, сравнение с массивами, подводные камни.[Promise, Promise, Promise] вместо ожидаемых данных. Всё дело в том, как вы используете await, map и forEach.useEffect к современным паттернам хуков, которые делают код чище, уменьшают ошибки и готовят ваше приложение к будущему.Vinyl и движок vinyl-fs. Эта статья — разбор этих технологий, сценарии применения и замена устаревшего passthrough на актуальные паттерны.array_map и array_filter. Этот инструмент, выходящий за рамки синтаксического сахара, способствует созданию более чистого и понятного кода. В статье рассматривается принцип работы PFA, приводятся практические примеры и проводится сравнение с классическими подходами.-z (и его алиас --zend-extension), который использовался для загрузки Zend-расширений через CLI и CGI интерфейсы.E_DEPRECATED, хотя сам вывод по-прежнему будет подавлен. В PHP 9.0 это приведёт к фатальной ошибке (Fatal Error), что прервёт выполнение скрипта.socket_set_timeout объявлена устаревшей. Полное описание замены на stream_set_timeout: синтаксис, параметры и обратная совместимость.xml_parser_free() перестал влиять на работу парсера, а в PHP 8.5 функция официально помечена как устаревшая.curl_close() — не игнорируйте их. Эти функции действительно стали бесполезными, и их вызов теперь лишь шум. В PHP 8.0 cURL-дескрипторы превратились в объекты, а в PHP 8.5 от пустых функций окончательно решили избавиться. Разбираемся, что это значит для вашего кода.mysqli_execute объявлена устаревшей. Узнайте, как правильно заменить её на mysqli_stmt_execute и обеспечить совместимость кода с будущими версиями PHP.(boolean), (double), (integer) и (binary) объявлены устаревшими: при использовании этих типов теперь выводятся предупреждения E_DEPRECATED. Эти альтернативные имена использовались параллельно с каноническими (bool), (float), (int) и (string), но в PHP 9.0 они будут удалены. Рассмотрим, почему принято такое решение, как это затронет ваш код и как подготовиться к переходу.PHP_BUILD_DATE, которая хранит дату и время сборки PHP-бинарного файла. Ранее эту информацию можно было получить только через phpinfo(), что было неудобно из-за необходимости парсить вывод функции. Теперь данные доступны напрямую в удобном формате.PHP_BUILD_PROVIDER, отображающая информацию о поставщике сборки PHP. Она получает значение из переменной окружения, заданной при компиляции, что позволяет разработчикам получать контекстные данные о сборке приложения. Ранее эта информация была доступна только через вывод phpinfo(), теперь её можно использовать непосредственно в коде.get_error_handler и get_exception_handler. Эти нововведения решают проблему отсутствия прямого доступа к информации о текущих обработчиках, ранее требовавшая использования обходных решений.fatal_error_backtraces, ограничения и взаимодействие с существующими инструментами обработки ошибок.locale_is_right_to_left и метод Locale::isRightToLeft, позволяющие разработчикам автоматически определять языки с написанием справа налево, включая арабский и иврит. Эти инструменты значительно упрощают локализацию приложений и обеспечивают корректное отображение текста на языках с RTL написанием письма.php --ini=diff. Она одним вызовом показывает все изменённые INI-настройки, избавляя от ручного сравнения конфигов или поиска в phpinfo().IntlListFormatter в PHP 8.5 упрощает форматирование списков на разных языках. Синтаксис, примеры и таблицы локализаций внутри.curl_multi_get_handles позволяет напрямую получить список всех добавленных CurlHandle, чего раньше катастрофически не хватало.max_memory_limit. Она позволяет задать верхний предел, выше которого значение memory_limit задать невозможно. Это упрощает контроль ресурсов в продакшене и предотвращает неконтролируемый рост потребления памяти.