3

WebTech

Личный кабинет

Проекты, коммерческие предложения, документы и отчёты — в одном месте.

Войти Зарегистрироваться Забыли пароль?
Yii (1 и 2) → Laravel

Миграция с Yii на Laravel без потери данных и трафика

Yii был быстрым и удобным, но Yii 1 остался в эпоху PHP 5, а Yii 2 теряет поддержку и разработчиков: развивать проект становится дороже, а находить людей — сложнее.

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

Или сразу: +7 (495) 368-39-51 Telegram Пн–Пт, 10:00–19:00 МСК

Yii1/Yii2
обе ветки
PHP 8+
целевая версия языка
тесты
на критичные сценарии
без простоя
переключение этапами
PHP 8+
Вместо версий, которые уже не поддерживаются
Eloquent и Livewire
Вместо ActiveRecord и GridView
Очереди и Horizon
Вместо cron-скриптов и самописных воркеров
Данные не теряются
Схема и история переносятся со сверкой

Аудит и оценка миграции

Посмотрим вашу систему, данные и интеграции. Скажем, сколько это займёт, что переносится, а что придётся делать заново.

Бесплатный аудит и медиаплан — без обязательств.

Почему уходят

Yii (1 и 2): что перестаёт устраивать

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

Yii 1 не работает на современном PHP

Проекты на Yii 1 остаются на PHP 5 или раннем PHP 7: они не получают обновлений безопасности, а хостинги постепенно отказываются от старых версий.

Что делаем: Переводим на Laravel с актуальным PHP: получаете поддерживаемый стек, обновления безопасности и нормальную поддержку инфраструктуры.

Yii 2 теряет поддержку и кадры

Развитие фреймворка замедлилось, разработчиков на рынке всё меньше, а найм превращается в долгий поиск.

Что делаем: Laravel — самый востребованный PHP-фреймворк: расширять команду и заменять людей проще, документации и специалистов больше.

Логика в контроллерах

Бизнес-правила живут прямо в экшенах контроллеров и моделях ActiveRecord: переиспользовать их нельзя, тестировать сложно, изменения рискованны.

Что делаем: Выносим логику в сервисы с тестами: её можно вызывать из разных мест — из веба, очередей, API и консольных команд.

Админка на GridView устарела

Таблицы, фильтры и формы собраны на виджетах Yii: интерфейс неудобен, каждый новый отчёт — отдельная разработка.

Что делаем: Админка на Livewire: живые таблицы, фильтры, массовые действия и понятные формы без перезагрузок и лишнего кода.

Фоновые задачи на cron

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

Что делаем: Очереди с Horizon: повторные попытки, приоритеты, мониторинг и видимость неудачных задач вместо «тихих» сбоев.

Обновления страшно делать

Тестов нет, окружений нет, релиз — это загрузка файлов на прод. Поэтому проект замирает: изменения откладываются, долг растёт.

Что делаем: Покрываем критичные сценарии тестами, настраиваем окружения и релизы через CI/CD: изменения выходят небольшими и обратимыми.

Карта переноса

Что переносим: Yii (1 и 2) → Laravel

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

Код и логика

  • Контроллеры и экшены — в сервисы
  • ActiveRecord — в Eloquent
  • Виджеты — в Blade и Livewire
  • Хелперы и поведение — в классы
  • RBAC — в политики и права Laravel

Данные

  • Схема базы и миграции
  • Справочники и связи
  • История операций
  • Файлы и вложения
  • Пользователи и роли

Интеграции и задачи

  • Внешние API и обмены
  • Платёжные системы
  • Отправка почты и уведомлений
  • Фоновые задачи и расписания

SEO и публичная часть

  • Адреса и ЧПУ
  • Метаданные и заголовки
  • Sitemap и robots
  • Микроразметка
Честно

Что не переносится один в один

Мы не обещаем «то же самое, только на Laravel»: часть вещей переносится смыслом, а не кодом. Об этом лучше знать до старта, чем обнаружить в процессе.

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

Yii (1 и 2): риски и как мы их закрываем

У каждой системы свои ловушки. Мы называем их заранее и описываем, как закрываем — до того, как они превратятся в сюрприз в середине проекта.

Логика в контроллерах

Часть правил неочевидна и не описана. Восстанавливаем поведение по коду и уточняем у заказчика перед переносом.

Специфика ActiveRecord

События, поведения и скоупы Yii не имеют прямых аналогов. Переносим их смысл в Eloquent-модели и наблюдатели.

Фоновые задачи в cron

Скрипты запускаются по расписанию и не логируют ошибки. Инвентаризируем их и переводим в очередь.

Отсутствие тестов

Критичные сценарии покрываем тестами до переноса, иначе нет способа доказать, что поведение сохранилось.

План

Как проходит миграция

Шесть этапов, каждый заканчивается проверяемым результатом. Бизнес продолжает работать: старый контур не выключается, пока новый не докажет, что считает и отдаёт данные правильно.

  1. 01 1–3 недели

    Аудит и карта системы

    Разбираем текущую систему: схема данных, точки входа, интеграции, задачи по расписанию, реальные бизнес-правила. На выходе — карта системы и оценка объёма.

  2. 02 2–3 недели

    Архитектура и план переноса

    Проектируем схему данных на Laravel, выбираем стратегию перехода, описываем этапы, критерии приёмки и план по SEO-редиректам.

  3. 03 2–6 недель

    Стенд и перенос данных

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

  4. 04 по ситуации

    Параллельная работа

    Новый и старый контуры работают одновременно: разделы переключаются по одному после сверки. Пользователи не замечают переезда.

  5. 05 2–5 дней

    Переключение трафика

    Переводим домен, включаем 301-редиректы по карте URL, проверяем sitemap, счётчики и цели. Контролируем индексацию и ошибки.

  6. 06 2–4 недели

    Стабилизация и передача

    Следим за метриками, правим найденное, обучаем команду, передаём документацию, доступы и регламенты.

Особенности плана: Yii (1 и 2)

  • Инвентаризация задач по cron и консольных команд — обязательный шаг: их легко забыть, а они влияют на данные.
  • Схему базы переносим как есть на первом шаге и нормализуем позже, чтобы не смешивать переезд и рефакторинг.
  • Админку можно переписать раньше публичной части: это ускоряет работу сотрудников и снижает нагрузку на поддержку.
  • Публичную часть переключаем после того, как критичные сценарии покрыты тестами и проходят на стенде.
SEO и трафик

Трафик из поиска не должен просесть

Главный страх при переезде — потерять позиции. Поэтому SEO-часть мы делаем до переключения и контролируем после, а не «посмотрим, что будет».

Карта URL до переезда

Собираем все адреса старой системы из базы, sitemap и логов: карточки, категории, пагинация, фильтры, старые ЧПУ.

301-редиректы 1:1

Совпадающие адреса сохраняем, остальные закрываем постоянными редиректами — без «главной страницы вместо товара».

Метаданные и заголовки

Переносим title, description, H1 и тексты, а не генерируем заново: поиск уже знает эти страницы.

Микроразметка

Товары, хлебные крошки, отзывы, FAQ — разметка сохраняется и валидируется заново на новом контуре.

Sitemap и robots

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

Счётчики и цели

Метрика, аналитика, цели и события переносятся и проверяются до переключения, чтобы не потерять статистику.

Мониторинг после релиза

Следим за ошибками 404/500, индексацией и позициями первые недели — редиректы и обход проверяются на живом трафике.

Стек

На что переводим: Laravel и вокруг

Открытые технологии без лицензий. Стек подобран так, чтобы систему могла развивать любая PHP-команда, а не только её автор.

Laravel 12

Ядро приложения: маршруты, сервисы, очереди, планировщик, тесты.

Livewire 3

Интерфейсы без перезагрузок: админка, таблицы, формы, фильтры.

PostgreSQL или MySQL

Нормализованная схема, индексы под реальные запросы, реплики для отчётов.

Redis

Кеш, сессии и очереди вместо файлового кеша и cron-скриптов.

Horizon и очереди

Фоновые задачи с повторами, приоритетами и мониторингом.

Тесты и CI/CD

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

Наблюдаемость

Логи, метрики и алерты: видно ошибки и деградацию до жалоб пользователей.

API и интеграции

Явные контракты обмена с 1С, платежами, доставкой, CRM и маркетплейсами.

Когда миграция не нужна

Мы не берём проект, если переход не окупается: иногда дешевле починить текущую систему или обновить её. Честный ответ экономит вам бюджет.

  • Проект на Yii 2 с небольшой кастомизацией: иногда дешевле обновить версию и починить узкие места.
  • Бизнес-логики почти нет: приложение в основном показывает данные из уже готовых источников.
  • Планируется замена продукта готовым SaaS-решением, а не собственная разработка.
Форматы работ

Как можно начать

Можно взять только аудит и план — и внедрять своими силами. Можно мигрировать этапами. Можно переписать систему целиком. Выбор зависит от состояния кода и от того, сколько бизнес готов ждать.

Аудит и план миграции

Нужно понять объём работ, риски и стоимость до принятия решения.

  • Карта системы и данных
  • Схема данных на Laravel
  • План этапов и критерии приёмки
  • План SEO-редиректов
  • Оценка сроков и бюджета
фиксированная стоимость Аудит можно внедрять своими силами
Обсудить
Чаще всего берут

Миграция этапами

Система работает и останавливать бизнес нельзя: переносим модулями, начиная с прибыльных.

  • Всё из аудита
  • Перенос данных и модулей
  • Разработка на Laravel
  • Параллельная работа контуров
  • Переключение и редиректы
проектная смета Оплата по этапам
Обсудить

Полный рерайт

Система деградировала, поддержка дороже развития: переписываем и запускаем параллельно.

  • Всё из миграции этапами
  • Новая архитектура целиком
  • Новый интерфейс и админка
  • Перенос истории
  • Обучение команды
проектная смета Срок от 12 недель
Обсудить

Сопровождение после миграции

Нужна уверенность после запуска: правки, мониторинг и развитие по данным.

  • Мониторинг и инциденты
  • Доработки по приоритетам
  • Развитие функциональности
  • Консультации команды
  • Отчёт по метрикам
по SLA Ежемесячно
Обсудить
Другие системы

Переносим и с других платформ

Ищем свою систему в списке или разбираем нетиповой случай: самописные решения, старые версии фреймворков и внутренние системы тоже переносим.

1С-Битрикс

Битрикс годами закрывает задачи, но теперь каждая правка стоит как отдельный проект: обновления ломают кастомизации, каталог тормозит, а разработчика, который разберётся в чужой сборке, найти всё сложнее.

Смотреть страницу

WordPress

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

Смотреть страницу

OpenCart

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

Смотреть страницу

MODX

MODX давал свободу в вёрстке, но вся логика оказалась в сниппетах и шаблонах: чтобы понять, как работает страница, нужно прочитать десяток вставок PHP, разбросанных по шаблонам.

Смотреть страницу

Joomla

Joomla держится на расширениях сторонних авторов: часть из них заброшена, часть несовместима с новыми версиями PHP, а переход между мажорными версиями Joomla сам по себе превращается в отдельный проект.

Смотреть страницу

CodeIgniter

CodeIgniter 2 и 3 — это PHP 5, сырые SQL-запросы, самописные хелперы и отсутствие нормальной структуры: проект работает, но развивать его с каждым годом дороже.

Смотреть страницу

Самописная система

Самописная система работает годами, но её понимает один человек: логика размазана по файлам на тысячи строк, документации нет, а любая правка грозит неожиданным последствием.

Смотреть страницу

Модернизация легаси

Стратегии модернизации, восстановление логики, работа с системой без документации.

Открыть страницу
Вопросы

Частые вопросы про миграцию

С Yii 1 и Yii 2 работаете одинаково?

Подход разный. В Yii 1 больше кода на старом PHP, часть библиотек несовместима с PHP 8, поэтому чаще переписываем модули целиком. В Yii 2 структура ближе к современной, поэтому часть логики переносится с меньшими изменениями. На аудите смотрим версию, зависимости и объём кастомного кода.

Переносится ли база данных как есть?

Да, схема переносится на первом этапе без изменений — это снижает риск. Нормализацию и оптимизацию делаем отдельным этапом, когда приложение уже работает на Laravel и есть тесты, доказывающие корректность.

Что будет с админкой?

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

Насколько срок миграции предсказуем?

После аудита — достаточно предсказуем: мы видим объём кода, зависимостей и интеграций. Проект делим на этапы с проверяемыми результатами, поэтому отклонения видны рано, а не в конце. Ориентир: аудит 1–2 недели, перенос 8–16 недель для приложения среднего размера.

Можно ли обновить Yii вместо перехода на Laravel?

Иногда да: если проект на Yii 2 и кастомного кода немного, обновление и рефакторинг могут быть дешевле миграции. Мы скажем об этом прямо на аудите — продавать переход там, где достаточно обновления, мы не будем.

Как переносится база данных при миграции?

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

Как гарантируется, что трафик из поиска не просядет?

Карта URL собирается до переезда: из базы, sitemap и логов сервера. Совпадающие адреса сохраняются один в один, остальные закрываются 301-редиректами. Метаданные, заголовки и микроразметка переносятся, а не генерируются заново. После переключения мы следим за ошибками, индексацией и позициями — обычно это 2–4 недели наблюдения.

Что происходит с интеграциями: 1С, платежи, доставка, CRM?

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

Можно ли обойтись без полного переноса?

Да. Варианты: укрепить текущую систему (закрыть уязвимости, добавить тесты, навести порядок в бэкапах), вынести отдельный модуль на Laravel и связать через API или шину, либо рефакторить по частям. На аудите мы говорим прямо, какой путь дешевле — иногда это отказ от полного переноса.

Сколько стоит миграция?

Стоимость зависит от объёма данных, числа интеграций, количества кастомной логики и требований к сохранению SEO. Аудит и план миграции фиксируются по цене заранее, дальше проект считается этапами с понятным результатом на каждом. По объёму работ миграция сопоставима с разработкой нового проекта — но с сохранением данных, истории и трафика.

Что будет с сотрудниками, которые работают в старой системе?

Мы меняем систему, а не процессы: админка собирается под их задачи, а обучение входит в проект. Обычно новая админка нравится больше: понятные формы, живые таблицы, отчёты без участия разработчика. Для сложных мест пишем короткие инструкции.

Кому принадлежат код и данные после миграции?

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

Что нужно от нас для старта?

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

Следующий шаг

Разберём вашу систему

Посмотрим код, базу и интеграции. Скажем, что переносится, что придётся делать заново, сколько это займёт и как сохранить трафик. Без обязательств.

Телефон
+7 (495) 368-39-51 Пн–Пт, 10:00–19:00 МСК
Что будет после заявки
Свяжемся в течение 15 минут в рабочее время, зададим несколько вопросов о системе и данных, после чего пришлём план миграции со сроком и сметой.
Что подготовить
Доступ к коду и базе (или их копиям) и контакт человека, который знает процессы. Этого достаточно для предметной оценки.

Заявка на аудит миграции

Опишите систему, объём данных и что критично сохранить — вернёмся с планом, сроком и сметой.

Не передаём данные третьим лицам и не звоним с рекламой.