Обновить
64K+

PHP *

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

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

Как я создавал Observability для своих pet-проектов. Часть 1

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

Это в какой-то степени продолжение моей статьи — История создания идеального Docker для Laravel. В ней я рассказывал о том, как собрал идеальный Docker-образ для Laravel с Nginx Unit. Это был один из первых шагов по оптимизации моей инфраструктуры. Как я уже упоминал, у меня есть несколько pet-проектов, запущенных на VPS в docker-compose, и я хотел не только отслеживать их состояние, но и прокачать навыки в области Observability.

Читать далее

Fusion — php стал ещё ближе к javascript

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели17K

Каждый PHP-разработчик, работая с современными JavaScript-фреймворками, наверняка задумывался о том, как было бы здорово передавать данные напрямую в компоненты без танцев вокруг контроллеров и типов данных. Арон Френсис, видимо, тоже терзал себя этим вопросом, поэтому 4 февраля 2025 года на своём ютуб-канале представил новую веху развития фронтенда на Laravel — Fusion.  В этом статье мы рассмотрим базовые принципы работы библиотеки и основные нюансы работы с ней.

Читать далее

Как мигрировать смарт-процессы в Битрикс и не сгореть

Уровень сложностиСложный
Время на прочтение30 мин
Охват и читатели4.8K

Привет, меня зовут Евгений, я разработчик из Байовэр в компании НЛМК ИТ.

Довелось мне тут столкнуться с разработкой системы опытно-промышленных испытаний на производстве, и если описать это коротко, то в целом большое количество людей разного уровня допуска должны совершить определенные действия в строгой последовательности (или местами асинхронно) для вынесения вердикта относительно качества продукта, и при этом управляться все это должно из одного места (как странно-то прозвучало:) Так как это достаточно инерционный процесс, который может занимать от нескольких месяцев до года, система, которая может рассылать ответственным за текущий шаг уведомления (а в случае простоя, и их руководству), позволяет ускорить прохождение большинства шагов бизнес-процессов (БП).

Приведу пример – требуются лакокрасочные покрытия от стороннего поставщика для работы цеха, но перед заключением контракта на массовые поставки, нужно убедиться, что товар не разбавлен. Ну то есть надлежащего качества:) Заранее прошу прощения за качество юмора, вы привыкнете.

Для этого закупается небольшая опытная партия, она проходит определенные испытания, и если результаты устраивают, процесс масштабируется на опытно-промышленную партию, побольше. Если же и в этом случае все испытания пройдены, то поставщик признается годным и материал одобряется к серийному применению. Собственно процесс испытаний мы и реализовали с помощью смарт-процессов. В данный момент у нас внедрено три категории материалов для испытаний (лакокрасочные материалы, огнеупорные материалы, наконечники медных фурм), они гораздо сложнее примера, который я хочу здесь описать, но его должно быть достаточно для масштабирования под нужды бизнеса.

Читать далее

CRM для автошколы, часть 2

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели2.3K

Поговорим о разработке CRM для автошколы, о ее состоянии на данный момент, сравним с текущим релизом, на каком этапе сейчас код и какие дальнешие планы. Разберор ключевых этапов и кода.

Читать далее

CRM для автошколы?

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели5.2K

Доброго времени. Меня зовут Дмитрий и я веб‑разработчик. На данный момент работаю в группе компаний по экспорту автомобилей и техники из Японии, Китая и Кореи. Но, сейчас поговорим не об основной работе, а о «подработке».

>= 2 лет назад, на меня вышел директор достаточно крупной автошколы нашего города. На тот момент у них имелось порядка 3-х филиалов, и приблизительно 4,5 тыс. учеников (как актуальных, так и те — которые уже получили свои ВУ). Директор предложил мне поработать с их CRM системой. Данное ПО было написано какими‑то фрилансерами, и на протяжении нескольких лет они же и обеспечивали поддержку. Но, со слов директора, они начали забивать на свою работу, затягивали с выполнением задач или во все игнорировали пожелания по внесению изменений (все это было не бесплатно).

Читать далее

MoonShine v3: главные изменения и новые возможности в open-source админ-панели для Laravel

Уровень сложностиПростой
Время на прочтение19 мин
Охват и читатели5.8K

MoonShine — это open-source админ-панель для Laravel, и 10 декабря 2024 г. вышел релиз MoonShine v3. В этом материале я расскажу что именно изменилось в самом MoonShine. Мы рассмотрим улучшения в установке и конфигурации, поддержку различных подходов к настройке, улучшения в работе с полями, новые возможности для интеграции с API, а также улучшенную работу с компонентами и меню. Также уделим внимание новым возможностям работы с фронтендом через Alpine.js, а также внедрению новых систем, таких как JSON-ответы и спецификации OpenAPI.

Давайте рассмотрим подробнее!

Читать далее

История создания идеального Docker для Laravel

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели23K

Казалось бы, упаковать PHP в контейнер и настроить GitHub Actions - дело пяти минут. Но как часто бывает, реальность оказалась сложнее. Это история о том, как я вернулся к разработке на PHP и решал накопившиеся проблемы с деплоем Laravel-проекта. О том, как готовил Docker-образ, несколько раз переписывал процесс деплоя, находил компромиссы там, где это было возможно, и полностью перестраивал архитектуру там, где компромиссы были неприемлемы.

Читать далее

Неубиваемый PHP: почему в 2025 году этот язык все еще остается одним из самых востребованных

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

Привет! На связи ITQuick — международная IT-компания, специализирующаяся на High-End разработке для среднего и крупного бизнеса. Мы создаем сложные архитектурные решения силами более 120 разработчиков уровня Senior и Senior+.

Сегодня мы поговорим с Альбертом Степанцевым @AlexLeonov — нашим тимлидом и партнером, опытным разработчиком с 20-летним стажем работы на PHP. За его плечами десятки успешных проектов: от небольших сайтов до масштабных корпоративных систем.

— Альберт, давай начнем с того, что уже более 20 лет в IT-сообществе ходит фраза «PHP скоро умрет». Как ты считаешь, почему этого до сих пор не произошло?

— Я помню, как еще в начале 2000-х мои коллеги уверяли, что PHP не переживет появление новых технологий. Тогда язык действительно был довольно примитивным. Но посмотри на цифры: по данным W3Techs на декабрь 2024 года, около 75% всех сайтов в мире работают на PHP. И это не случайно — я на собственном опыте убедился, почему ни Node.js, ни другие технологии не смогли занять его место.

— А с какими предубеждениями против PHP ты сталкиваешься чаще всего?

— Самые распространенные претензии: «Он слишком простой», «Подходит только для новичков» и «Нет серьезных проектов».

Читать далее

Упакуйте свой код правильно

Уровень сложностиСложный
Время на прочтение13 мин
Охват и читатели14K

В предыдущей статье «Как организовать структуру приложения» обсуждались различные подходы к организации кода, включая монолитную архитектуру, многослойную архитектуру и принципы чистой архитектуры. В ней я  акцентировал внимание на важности понятной структуры кода, которая облегчает понимание, внедрение новых функций и снижает вероятность ошибок. Особое внимание уделялось критериям понятности, таким как чёткое назначение файлов и папок, разделение логики по модулям или функциональным зонам, использование самодокументируемых названий и соблюдение стандартов кодирования. Также были рассмотрены проблемы, возникающие при неструктурированной организации кода, такие как сложность навигации, отсутствие модульности и нарушение принципов SOLID и GRASP.

Читать далее

Взгляд на JWT как на инструмент построения стройной архитектуры приложения

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

Три года назад мне поручили задачу по распилу сразу двух монолитов с вынесением в общий микросервис данных пользователей и созданием единого механизма аутентификации и авторизации. Конечной целью этого действа было создание надежной базы для перехода всей разработки в команде на микросервисную архитектуру.

Тогда-то я впервые и применил на практике JWT, результатами чего остался очень доволен. В этой статье я хочу поделиться своим опытом работы с этим стандартом на конкретных примерах и рассказать, почему он удовлетворяет все мои потребности как разработчика в самых разных проектах: новых и долгоживущих, микросервисных и монолитных, в ситуациях, когда нужно быстро накидать MVP, и когда требуется не спеша и вдумчиво заложить основу на долгие годы качественной разработки.

Читать далее

Ежегодный опрос PHP-сообщества: итоги 2024 года

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели12K

2024 стал насыщенным годом для русскоязычного сообщества PHP-разработки. PHP Russia 2024, релизы PHP 8.4, Symfony 7.2 и Laravel 11.

Как и в последние 4 года, мы провели масштабный опрос, чтобы узнать, чем живут разработчики, какие инструменты используют и куда движется индустрия. На этот раз своим мнением делились 1207 респондентов.

Читать далее

Переход на Symfony в заскорузлом Yii2 монолите: подробный разбор

Уровень сложностиСложный
Время на прочтение20 мин
Охват и читатели6.1K

Полгода назад мне посчастливилось решать интересную и нетипичную задачу по затаскиванию Symfony в Yii2 монолит. В данном материале я подробно и пошагово распишу весь процесс решения этой задачи с пояснениями, почему были выбраны именно такие решения и как это работает.

Читать далее

Общение с умными устройствами силами PHP

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

Каждый день мы сталкиваемся с более новыми и умными устройствами, управляемыми через интернет или Wi-Fi. Концепция IoT (Internet of Things) объединяет физические устройства в одну сеть для передачи данных и управления ими. И, оказывается, что интернет вещей — никакое не ограничение! Управлять устройствами в сети можно с помощью легковесного протокола MQTT.

Привет, Хабр! Меня зовут Александр Чередников и я — CTO в компании QTIM, которая занимается заказной разработкой. В этой статье, по мотивам моего доклада на PHP Russia, расскажу, как общаться с умными устройствами силами PHP.

Читать далее

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

Как я собственный электронный журнал писал

Время на прочтение8 мин
Охват и читатели8.8K

Приветствую всех! В данной статье я расскажу про процесс создания собственного школьного электронного журнала...

Читать далее

Секреты стройности монолита: подходы по снятию нагрузки с БД

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели39K

Привет! Меня зовут Олег Кретинин, и я разработчик в команде общих компонентов в Яндекс Еде. Сегодня я расскажу о том, как мы смогли успешно снять нагрузку с нашей базы данных, а также уменьшить её размер.

Помимо сервисов, написанных на C++, Go и Python, у нас есть монолит, он же «кора», на PHP, который всё ещё представляет огромную кодовую базу, хранит кучу логики и предоставляет данные по API для 120 сервисов.

После обновления фреймворка и версии PHP мы принялись за решение другой проблемы, которая всё чаще и чаще давала о себе знать. В тот период у нас возросло количество инцидентов, связанных с базой данных, и нам нужно было что‑то придумать, чтобы стабилизировать проект максимально быстро. Случалось, что всё сыпалось во время праздничных дней, когда количество заказов увеличивалось на 30–40%, или во время разовых массовых операций, например когда однажды в большую сеть ресторанов добавлялся бесплатный соус к каждой позиции меню.

Читать далее

Сервис событий элементов смарт-процесса Bitrix24 на архитектуре DDD

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели4.8K

Приветствую всех укротителей событий! Проникнувшись идеей разработки с использованием DDD, я решил реализовать на нем обработку событий для элементов смарт-процессов Bitrix24, коей хочу поделиться с вами.

Читать далее

Бизнес-процессы Битрикс: практические советы

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

Привет, Хабр!

Меня зовут Михаил, я ведущий разработчик в НЛМК ИТ. Команда, в которой я состою, занимается разработкой и поддержкой различных информационных систем, одной из которых является Единый корпоративный портал ГК НЛМК на базе Битрикс24.

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

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

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

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

Читать далее

Добавляем свои переменные в шаблоны писем Joomla 5+

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели732

Расширяем стандартный функционал шаблонов писем CMS Joomla. Добавляем к переменным (шорт-кодам) шаблонов писем поля пользователей.

Читать далее

Асинхронный бег или драматическое ускорение с RoadRunner

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.4K

Очень много в последнее время слышно замечаний в адрес PHP – мол, медленный, тяжелый, неповоротливый, все давно микросервисы на Go/Java/(нужное подставить) пишут. В этой статье я постараюсь расписать плюсы, минусы и результаты нашей попытки ускорить проект на PHP с использованием RoadRunner.

Читать далее

Сделали свой обучающий курс для разработчиков. Выпускать или нет?

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

Всем добра! Я руковожу агентством web/mobile разработки, поэтому заинтересован, чтобы моя команда росла в скиллах. Тем временем рынок меняется, постоянно выкатываются обновления, а найти действительно сильных специалистов все сложнее.

Читать далее