← все записи

Тег #Yii2

daily26 авг. 2026 г./7 мин

Всё, что было не так с одной маленькой формой

Форма «Моя семья» в личном кабинете состояла всего из нескольких полей, но проблема нашлась на каждом уровне: можно было добавить самого себя как родственника, форма требовала ID, который никто не помнит, невозможные даты приводили к ошибке, сообщения игнорировали выбранный язык, выпадающий список не закрывался, а Backspace не удалял символ. Это история полного ремонта одной обманчиво простой формы — от backend-правил и интеграции с сервисами до состояния и frontend-полировки.

#PHP#Yii2#Nuxt#Vue#UX#API design#Localization
daily25 авг. 2026 г./6 мин

Страница, которая скрывала собственный контент

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

#Nuxt#Vue#SSR#PHP#Yii2#Performance#Caching#Web Vitals
deep dive21 авг. 2026 г./6 мин

Запись к врачу прямо из личного кабинета

Запись к врачу по корпоративному ДМС раньше означала переписку с Telegram-ботом. Я перенёс этот процесс в личный кабинет — в форму из пяти шагов, которая за считанные секунды передаёт заявку операторам. Самое интересное здесь было решить, как мало информации браузеру вообще разрешено отправлять.

#PHP#Yii2#Nuxt#CRM#Telegram#API design
daily12 авг. 2026 г./6 мин

Что на самом деле осталось на вашей медицинской карте

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

#PHP#Yii2#Nuxt#API design#insurance#i18n
daily6 авг. 2026 г./5 мин

Функция загрузки файлов, которую я реализовал, удалив большую часть собственного дизайна

Мы добавили шаг «Причина отмены» в мастер онлайн-расторжения страхового полиса: быстрый выбор причины, произвольный комментарий и необязательное прикрепление PDF-документа. Моё первое решение включало два новых API, отдельную таблицу в базе данных, машину состояний и фоновую очистку неиспользуемых файлов. В финальной версии не осталось ничего из этого: файл отправляется вместе с уже существующим запросом, хранится в S3, а база сохраняет лишь ссылку на него. Эта история о том, как пересмотр собственного решения сделал функцию проще, безопаснее и позволил выпустить её быстрее.

#Nuxt#Vue#Yii2#S3#file-upload#UX#API-design
weekly28 июл. 2026 г./3 мин

Три дня, чтобы личный кабинет страхования начал показывать правду

Трёхдневный спринт по развитию личного кабинета gross.uz: переход на единый достоверный источник данных, поиск страховых полисов, о существовании которых пользователи даже не подозревали, и доработка интерфейса, чтобы он ощущался как современное мобильное приложение, а не обычный веб-сайт.

#Vue#Nuxt#PHP#Yii2#API#UX