3

WebTech

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

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

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

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

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

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

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

CI2/CI3
обе ветки
PHP 8+
целевая версия языка
0
хелперов-однодневок
без простоя
переключение этапами
PHP 8+
Вместо версий без обновлений безопасности
ORM и миграции
Вместо сырых SQL-запросов в контроллерах
Тесты и окружения
Релизы перестают быть риском
Данные сохраняются
Схема и история переносятся со сверкой

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

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

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

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

CodeIgniter: что перестаёт устраивать

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

Код без фреймворка внутри фреймворка

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

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

Сырые SQL повсюду

Запросы собираются строками прямо в контроллерах: их сложно менять, они не экранируют данные и дублируются десятками копий.

Что делаем: Переводим работу с данными в Eloquent и построитель запросов, а сложные выборки — в отдельные репозитории с тестами.

Нет тестов и окружений

Правки делают сразу на боевом сервере, откат — из бэкапа. Любое изменение превращается в риск, поэтому задачи откладывают.

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

Уязвимости старого кода

Отсутствие CSRF-защиты, экранирования и обновлений зависимостей — типичный набор для проекта на CodeIgniter 2.

Что делаем: Laravel даёт защиту от CSRF, XSS и SQL-инъекций по умолчанию, а зависимости обновляются через менеджер пакетов.

Нет админки и отчётов

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

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

Разработчиков всё меньше

Найти специалиста по CodeIgniter 2 сложно, а разбираться в самописной архитектуре никто не хочет: поддержка держится на авторе проекта.

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

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

Что переносим: CodeIgniter → Laravel

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

Логика

  • Контроллеры — в сервисы и действия
  • Модели — в Eloquent
  • Хелперы — в классы и хелперы Laravel
  • Библиотеки — в пакеты и сервисы
  • Права доступа — в политики

Данные

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

Интеграции

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

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

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

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

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

Разобрать вашу систему
  • Самописные библиотеки и хелперы: их функции реализуются штатными средствами Laravel.
  • Структура каталогов и файлов CodeIgniter: приложение проектируется по стандартам Laravel.
  • Старые версии PHP-библиотек: заменяются поддерживаемыми аналогами.
  • Реализация авторизации и сессий: используется штатный механизм фреймворка.
  • Шаблоны с вставками PHP: заменяются Blade-шаблонами.
Риски

CodeIgniter: риски и как мы их закрываем

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

Логика в SQL-запросах

Бизнес-правила могут быть спрятаны в сложных запросах. Разбираем их и переносим в сервисы с тестами.

Отсутствие документации

Поведение восстанавливаем по коду, базе и вопросам сотрудникам; спорные места согласуем до разработки.

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

Старый код мог писать данные непоследовательно. Проверяем целостность до переноса и чистим справочники.

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

Часть обменов запускается кроном и не описана. Инвентаризируем задачи, иначе обмен «отвалится» после переезда.

План

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

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

  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 недели

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

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

Особенности плана: CodeIgniter

  • Начинаем с инвентаризации: маршруты, 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 и маркетплейсами.

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

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

  • Проект маленький и работает стабильно без изменений — иногда достаточно обновить PHP и закрыть уязвимости.
  • Планируется замена системы готовым продуктом, а не собственной разработкой.
  • CodeIgniter 4 и объём кастомного кода небольшой: дешевле остаться и почистить.
Форматы работ

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

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

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

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

  • Карта системы и данных
  • Схема данных на 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 4 тоже переносите?

Да, но подход отличается: CI4 уже использует современные практики (пространства имён, Composer, миграции), поэтому часть кода переносится с меньшими изменениями. Часто в этом случае имеет смысл сначала обновить проект внутри CI4, а миграцию на Laravel делать позже — на аудите мы скажем, какой путь дешевле.

Что делать с самописными библиотеками?

Разбираем каждую: какую задачу она решает и есть ли штатное решение в Laravel или готовый пакет. Обычно 70–80% самописного кода заменяется стандартными средствами, а оставшееся становится сервисами с тестами.

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

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

Как быстро проект перестанет требовать автора?

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

Сколько это стоит?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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