Рубрика «php» - 2

Привет! В мире PHP-разработки роутинг — это основа любого веб-приложения. От простых API до сложных микросервисов, правильный роутер может стать ключом к производительности и масштабируемости. Сегодня я хочу представить вам Cloud Castle HTTP Router — мою библиотеку, которая сочетает скорость, простоту и мощь. Это не просто инструмент, а решение для разработчиков, которые хотят оставить позади громоздкие фреймворки и сосредоточиться на коде. Давайте разберем ее по полочкам: технические фичи, маркетинговый потенциал и архитектурные преимущества. А в конце — сравнение с конкурентами и реальные тесты из документации.

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

Привет! Хочу поделиться историей о том, как столкнулся с проблемой, возможно знакомой многим разработчикам: необходимость внедрить систему рекомендаций в проект, который все еще работает на старой версии php 7.2

Обновление версии php в legacy-проекте — это часто настоящий квест. То времени нет, то бизнес-фичи надо пилить, то еще какие-то причины. И часто бывает, что обновление версии php в командах откладывается на потом. Так проекты, даже очень большие живут годами на старых версиях php.


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

История о том, как стремление человека управлять сложностью меняло сами основы программирования.

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

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

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

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

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

Привет! Сегодня покажем, как буквально за пару вечеров собрать систему, которая расшифровывает звонки, анализирует речь операторов и присылает руководителю отчёт в Telegram.

Например, в кол-центре с 15 операторами такая сводка поможет руководителю быстро понять, кто перегружен, где чаще звучит негатив, а кто просто слишком много говорит. Не надо слушать записи — отчёт сам всё рассказывает.

📊 Отчёт за 19 июля
🎧 Оператор дня: Иван Иванов (emotionScore: 0.42)
🥵 Больше всего негатива: Юлия Тестова (33%)
🗣️ Средняя скорость речи: 132 слов/мин
🤯 Самый «говорящий»: Андрей Максимов (74% времени)
Читать полностью »

Вы когда-нибудь пытались загрузить в память CSV-файл на миллион строк и увидели что-то вроде:

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted

Даже если увеличить memory_limit, ощущение всё равно неприятное: мы держим в памяти весь массив данных, хотя работаем с ним построчно.

Решение? Ленивые вычисления — подход, при котором данные генерируются и обрабатываются только тогда, когда они реально нужны.
В PHP это можно сделать двумя способами: с помощью генераторов (yield) и через Iterator API. Сегодня разберём оба.

Что такое ленивые вычисления

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

Доброго времени суток, меня зовут Тимур. Я являюсь разработчиком на 1С платформе и так получилось что я разбираюсь в Web технологиях, моим любимым языком является PHP, и я подумал почему бы не сделать программное средство для администрирования 1С через web.

Администрировать 1С сервер можно через командную строку при помощи компоненты RAC которая предоставляет только терминальный интерфейс, что немного не удобно.

Например, чтобы проверить включены ли регламентные базы вам постребуется выполнить несколько команд

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

Проблема: плагины, которые живут внутри чужих папок

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

Представьте:

Ядро (/core) с сотнями файлов в сложной структуре:

/core
├── /config
│   ├── app.yaml
│   └── routes/
├── /src
│   ├── /utils
│   │   ├── logger.py
│   │   └── network/
│   └── main.py
└── /templates
    ├── base.html
    └── /admin

Плагин, который раскидывает свои файлы прямо в подпапки ядра:

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

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

Цель статьи — дать начинающим PHP-разработчикам практическое понимание того, как работает внедрение зависимостей (DI) и контейнер внедрения зависимостей (DI-контейнеры), а также показать, как эти принципы применяются в современных фреймворках.

Для понимания примеров необходимы знания базового синтаксиса php.

Полный код примеров можно посмотреть в репозитории.

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

Однажды передо мной встала довольно интересная задача: обеспечить взаимодействие стороннего веб-приложения - и набора сервисов, имеющих gRPC интерфейс.

Нужно было проводить обработку данных от веб-приложения через конвейеры AI-агентов, собирать конечный результат, и отдавать его приложению.

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

Мне потребовалось поддержать три типа интерфейсов. Во-первых,RestAPI для веб-приложения. Во-вторых, gRPC для взаимодействия с сервисами. В-третьих, HTTP + Websocket для интерактивного мониторинга и управления.

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


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