3

WebTech

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

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

Войти Зарегистрироваться Забыли пароль?
Самописная система → Laravel

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

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

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

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

PHP 8+
целевая версия языка
100%
логики описано документально
тесты
на критичные сценарии
этапами
без остановки работы
Логику восстанавливаем
По коду, базе и разговорам с сотрудниками
Документация появляется
Карта модулей, схема данных, регламенты
Данные не теряются
Переносим историю со сверкой расхождений
Нанять разработчика реально
Стандартный стек вместо уникального

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

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

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

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

Самописная система: что перестаёт устраивать

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

Логику знает один человек

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

Что делаем: Восстанавливаем логику по коду, схеме базы и интервью с сотрудниками и описываем документально. Знание перестаёт быть личным активом.

Правка ломает то, что рядом

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

Что делаем: Разделяем слои: данные, логика, представление. Критичные сценарии покрываем тестами, поэтому регресс видно до релиза.

Разработчиков не найти

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

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

Уязвимости и утечки

Запросы собираются конкатенацией, пароли хранятся слабым хешем, файлы доступны по прямым ссылкам без проверки прав.

Что делаем: Закрываем типовые уязвимости на уровне фреймворка: подготовленные запросы, современное хеширование, права доступа к файлам и разграничение ролей.

Нет окружений и бэкапов

Правки вносятся прямо на боевом сервере, резервные копии делаются «иногда» и не проверяются на восстановление.

Что делаем: Настраиваем окружения, автоматические бэкапы с проверкой восстановления и релизы через CI/CD.

Данные расходятся

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

Что делаем: Проводим инвентаризацию данных, описываем правила и чистим перед переносом. Дальше схема не даёт создавать несогласованности.

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

Что переносим: Самописная система → Laravel

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

Логика

  • Бизнес-правила из кода
  • Расчёты и формулы
  • Сценарии обработки заявок
  • Права и роли
  • Отчёты и выборки

Данные

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

Интеграции

  • Внешние API
  • Платёжные системы
  • Обмены с 1С и учётными системами
  • Почта и уведомления
  • Задачи по расписанию

Публичная часть

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

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

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

Разобрать вашу систему
  • Структура кода: её обычно нет как структуры, приложение проектируется заново.
  • Поведение «баг в баг»: часть поведения — следствие ошибок, повторять их в новой системе не нужно.
  • Ручные скрипты и разовые правки, которые выполнялись вручную годами.
  • Устаревшие библиотеки и подключения без менеджера зависимостей.
  • Прямые доступы к файлам и базе: в новой системе доступы разграничены.
Риски

Самописная система: риски и как мы их закрываем

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

Логика недокументирована

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

Данные с расхождениями

Дубли, битые связи и устаревшие справочники. Инвентаризация и правила очистки — отдельный этап.

Скрытые интеграции

Часть обменов работает через 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 недели

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

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

Особенности плана: Самописная система

  • Инвентаризация — самый важный этап: без карты системы невозможно оценить объём и риски.
  • Начинаем с данных: схема и справочники описывают предметную область лучше любого кода.
  • Публичную часть переносим после того, как закрыты критичные сценарии и формы заявок.
  • Документацию пишем по ходу работы, а не в конце: она и есть главный результат проекта.
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 и маркетплейсами.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1С-Битрикс

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

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

WordPress

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

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

OpenCart

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

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

MODX

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

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

Joomla

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

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

Yii (1 и 2)

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

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

CodeIgniter

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

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

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

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

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

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

С чего вы начинаете работу с самописной системой?

С инвентаризации: описываем схему базы, находим все точки входа (страницы, формы, cron-задачи, интеграции) и восстанавливаем бизнес-правила по коду и интервью с сотрудниками. На выходе — карта системы и план переноса с оценкой. Без этого этапа любая оценка была бы фантазией.

Что если автор кода недоступен?

Это частая ситуация: восстанавливаем поведение по базе, логам, письмам и тому, как системой пользуются сотрудники. Все допущения фиксируем письменно и согласуем — так спорные места становятся явными до разработки, а не после запуска.

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

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

Сколько времени занимает такой проект?

Инвентаризация и карта системы — 2–4 недели, проектирование и подготовка данных — 2–4 недели, перенос и разработка — от 8 недель, переключение и стабилизация — 2–4 недели. Разброс большой: он определяется объёмом кода и качеством данных, а не размером интерфейса.

Можно ли вести старую систему, пока идёт перенос?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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