Все потоки
Поиск
Написать публикацию
Обновить
151.34

PHP *

Скриптовый язык общего назначения

Сначала показывать
Порог рейтинга
Уровень сложности

Использование файберов в PHP: разбор от команды СберЗдоровье

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров1.2K

PHP и асинхронность. Такая комбинация долгие годы казалась невозможной, ведь PHP прочно ассоциировался с блокирующим подходом и синхронным выполнением скриптов «от запроса до ответа». С выходом PHP 8.1 ситуация несколько изменилась — появилась возможность реализовать асинхронность в PHP на основе файберов. Но есть нюанс — вопрос о том, действительно ли PHP с приходом файберов стал асинхронным, по-прежнему для многих остается открытым.

Меня зовут Михаил Сазонов. Я работаю в команде «Регистратура» в MedTech-компании №1 в России – в СберЗдоровье. В этой статье я разберу, наступило уже будущее или нет: стал ли PHP действительно асинхронным с приходом файберов или это миф.

Читать далее

Новости

Как я пытался подружить PHP с NER — драма в 5 актах

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров873

Это статья — пример небольшого личного опыта, где я пытался решить одну чисто техническую задачу для одного из моих текущих проектов. Задача в конце‑концов была решена, насколько правильно — не знаю, но надеюсь многим будет интересен и полезен мой опыт. Итак, небольшая драма в 5-ти актах.

Читать далее

PHP: Общая память

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров1.6K

Хочется быстрый кеш или общение между процессами? Хочется использовать фишки long-running PHP, но без long-running?

Давайте разберёмся, как работать прямо с оперативной памятью: от System V до MapViewOfFile; От shmop до FFI.

Расшарить оперативу

От PHP к React: размышляем о вреде и пользе миграции

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3.5K

Недавно мы с командой работали с клиентом из финансового сектора: у него есть сайт и личный кабинет, давно написанные на PHP (бэк и фронт), и задача — обновить дизайн и пользовательский опыт без глобальных изменений «под капотом».

Мы начали исследовать, насколько целесообразно сейчас поддерживать фронт на PHP. Пока разбирались, собралось много аргументов и наблюдений. Делимся ими, чтобы помочь компаниям и разработчикам, оказавшимся в такой же ситуации.

Читать далее

Как устроены массивы в PHP и как код влияет на скорость работы с ними

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров4.4K

Массивы — это хлеб и масло PHP-разработчика. Мы используем их постоянно, но редко задумываемся, как они устроены внутри. А от этого устройства напрямую зависит скорость и память нашего приложения. Давайте разберемся.

Читать далее

Emoji PHP — смайлики в вашем проекте

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1K

Столкнулись с необходимостью работать со смайликами как в Telegram: группировать, искать и хранить в базе? — Готовых решений на PHP не нашлось.

Рассказываю, как я создал библиотеку Emoji PHP для решения этих задач

Читать далее

День программиста: от CGI до Zope

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.1K

📅 Сегодня — День программиста. И это отличный повод вспомнить, что даже то, что кажется нам «естественным» и само собой разумеющимся, когда-то было революцией.

Мы привыкли к тому, что любой фреймворк — это набор правил и инструментов, который помогает нам работать быстрее, чище, правильнее. Но назвать «первый в мире фреймворк» — так же сложно, как назвать первого музыканта, сыгравшего рок-н-ролл. Понятие рождалось постепенно, размытое и спорное.

Читать далее

Мониторинг и анализ производительности бэкенда с помощью ClickHouse и Grafana. Часть 3

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров1.8K

Всем привет! Я Артём Седых, ведущий разработчик и тимлид проекта банковского сопровождения. Наш сервис — 8-летний монолит на PHP с командой из 39 человек. В цикле статей рассказываю об опыте разработки и внедрения альтернативы pinba: гибкого инструмента мониторинга, который позволяет увидеть живую систему как на ладони и понять, из‑за чего именно проседают определенные экшены. Сегодня, в третьей и заключительной части, рассмотрим мониторинг со стороны devops на дашбордах SLI/Apdex, поколдуем над статистическими методами для прогноза снижения производительности, поговорим об автоматических уведомлениях Grafana. Оценим перспективы развития, сравнительный анализ выбранного подхода и выводы по нашему опыту.

Читать далее

Визуализация обмена с 1С: синхронизация заказов, остатков и контрагентов для e-commerce

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.4K

Привет! Это Илья, руководитель проектов в Webest. Расскажу о том, как мы построили обмен между интернет-магазином и 1С. Реализовали двусторонний обмен через очереди, ввели приоритеты для разных типов данных и сделали прозрачный мониторинг в админке Orchid.

Читать далее

Post-PHP эра: куда движется веб-разработка?

Время на прочтение6 мин
Количество просмотров19K

Привет, хабровчане! Я Алиса — тимлид в e-commerce-агентстве KISLOROD, по базовой профессии — сеньор PHP-разработчик с десятилетним стажем. И да, спойлер: PHP не только жив, он бодро бегает марафоны.

По данным W3Techs, PHP работает на более чем 76% серверов, где известен язык бэкенда. Последние релизы стабильно приносят +20–25% производительности на версию — на фоне вечного рефрена «PHP умер». Удобно хоронить то, чьи обновления не открывал с 2012-го, верно? Давайте разбираться.

Читать далее

Pulse Boson PHP #1

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров5.5K

Обзор развития проекта Boson PHP — платформы для создания десктопных приложений на веб-технологиях. Новый сайт, обновленная документация, веб-компоненты (главная фишка проекта), и технические особенности разных ОС.

Читать далее

Защищаем контейнеры с нуля: практическое руководство по Docker security и Kubernetes security contexts

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6K

Привет, Кореша! Вы когда-нибудь задумывались о безопасности контейнеров, работающих в продакшене? Docker и Kubernetes предоставляют широкий набор инструментов, которые могут быть использованы плохими людьми. Безопасность контейнеров — это не просто волшебная защита, а многослойная система, охватывающая весь процесс от сборки до запуска в кластере.

В этой статье мы разберем практические шаги по защите ваших контейнеров, от написания безопасного Dockerfile до настройки политик безопасности в Kubernetes.

Читать далее

Мониторинг и анализ производительности бэкенда с помощью ClickHouse и Grafana. Часть 2

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров3.9K

Всем привет! Я Артём Седых, ведущий разработчик и тимлид проекта банковского сопровождения. Наш сервис — 8-летний монолит на PHP с командой из 39 человек. В цикле статей рассказываю об опыте разработки и внедрения альтернативы pinba: гибкого инструмента мониторинга, который позволяет увидеть живую систему как на ладони и понять, из‑за чего именно проседают определенные экшены. Сегодня, в продолжение первой статьи, закрываем архитектурную часть — поговорим об отправке и хранении метрик. А главное, перейдём к самому интересному: получившимся дашбордам Grafana. На конкретных примерах покажу, какие проблемы удалось обнаружить и какие рекомендации по оптимизации можно извлечь из каждого элемента.

Читать далее

Ближайшие события

TMH: как создать музыкальный хаб на PHP, Telegram и виртуальном хостинге

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2K

Telegram Music Hub (TMH) — это open-source решение, которое превращает ваш Telegram-канал в единое цифровое пространство для музыки, блога и сообщества.
И всё это — на самом обычном виртуальном хостинге, без баз данных, без сложных зависимостей, без дорогих серверов.

👉 github.com/tcse/php-TMH

Читать далее

Подключаем Centrifugo в laravel

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров2.4K

В этой статье мы рассмотрим интеграцию сервера реального времени Centrifugo с фреймворком Laravel, основные настройки и нюансы работы

Centrifugo – это сервер для работы в реальном времени, который поддерживает различные транспорты для подключения клиентов, включая WebSocket, HTTP-streaming, Server-Sent Events (SSE) и другие. Он использует publish-subscribe паттерн для обмена сообщениями

Читать далее

Рассылка на миллион: как CDP от БизнесПрофи на базе Битрикс24 помогает оперировать реально огромными базами контактов

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров312

Привет! Меня зовут Анна Амирова, я из digital-интегратора БизнесПрофи. Сегодня возвращаюсь со второй частью статьи о том, как работает и чем помогает маркетологам и отделу продаж CDP на базе Битрикс24.

В предыдущей части статьи говорилось о том, какие методы сегментации можно использовать, чтобы выделить целевые аудитории для различных задач маркетинга и продаж. Сегодня речь пойдет о том, как реализованы рассылки в нашей CDP и как они позволяют работать с собранными сегментами ЦА.

Читать далее

Ещё раз о генераторах (и немного о генеративных моделях)

Время на прочтение7 мин
Количество просмотров3.4K

По факту это рецензия. На статью, которая показалась мне настолько показательной, что я решил написать на неё развернутый отзыв. Причём показательна она сразу в двух плоскостях: во-первых, идея о том, что генераторы экономят память, всё ещё находит своих приверженцев; во-вторых, тема превращения человека в бессловесный придаток бездушной машины не стояла так остро со времени выхода на экраны фильма "Матрица".

Читать далее

Битрикс24 Factory, Operation, Action разбираемся с новым API CRM и строим масштабируемую архитектуру для смарт-процессов

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров652

Как разобраться с фабриками, операциями и действиями для смарт-процессов. Разберем проблемы официальной документации, масштабирование на множество сущностей и предложим готовое архитектурное решение.

Читать далее

Peck — утилита для ваших PHP проектов

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров3.4K

Peck - это мощный инструмент CLI, предназначенный для выявления ошибок формулировки или написания в вашей кодовой базе: имена файлов, имена классов, имена методов, имена свойств, документы и многое другое

Читать далее

Единый код валидаторов на фронте и бэке (PHP + FFI + Go + JS)

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.2K

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

Если фронт и бэк написан на одном языке (привет js+node), то мы можем напрямую использовать один код валидатора и там и там.

В остальных случаях (js+php, java, python, go, dotnet) есть проблема. Во-первых, придётся два раза писать примерно одно и то же на двух языках, во-вторых, нужно убедиться, что написанное работает одинаково. Особенно печальны случаи, когда фронт ошибочно зарезает данные, валидные с точки зрения бэка и логики приложения.

Читать далее
1
23 ...