Возможно ли это?Да.
Это займет немного времени? Абсолютно нет .
При использовании любой устаревшей кодовой базы вам потребуется время, чтобы выяснить все ее движущиеся части и выяснить, какие части понадобятсяизменить, чтобы даже иметь возможность работать на современной платформе.
Для самой последней версии Laravel требуется PHP 7.1.3, поэтому даже попытка просто сбросить всю кодовую базу в приложение Laravel, скорее всего, приведет кприведет к сбою.
Во-первых, есть ли у вашего старого приложения тесты?Это могут быть модульные тесты, интеграционные тесты или функциональные тесты.Если нет, и вы хотите иметь возможность модернизировать свое приложение без каких-либо проблем в будущем, тогда вы захотите написать тесты, чтобы убедиться, что ничего не сломается, когда вы начнете обновление.Это само по себе может занять много времени, особенно с кодовой базой, которая затрудняет даже тестирование в первую очередь.Наличие полностью протестированного приложения позволит вам увидеть, какие тесты начнут давать сбой, когда вы начнете дорабатывать ваше приложение, поэтому эта информация будет чрезвычайно полезна.
Во-вторых, сможете ли вы заставить его работать над более поздними версиями?версия PHP?Если этот код уже работает, то вам потребуется использовать некоторую аппаратную виртуализацию через Vagrant или, что еще лучше, контейнеризацию через Docker , чтобы запустить и запустить локальную установкуне нарушая ваш производственный код.
Когда все будет готово, вы сможете начать рефакторинг.Взятие целых страниц кода и выгрузка их прямо в приложение Laravel не будет работать прямо из ворот.Вы хотите начать с меньшего.Найдите все свои движущиеся части, выясните, за что отвечает каждый, и инкапсулируйте их в классы с помощью соответствующих методов.
Используйте автозагрузчик Composer PSR-4 , чтобы помочь удалить все эти компоненты.дополнительные операторы include
и require
и загрузка новых классов по всему приложению.
Используйте приличный Маршрутизатор , чтобы изменить все ваши URL-адреса в удобные для SEO пути и иметь четко определенныеточка входа для всех запросов.
Удалите всю свою бизнес-логику из webroot: создайте папку /public
, в которой у вас есть только ваша точка входа index.php
и все общедоступные ресурсы (изображения, CSS, Javascript,так далее.).Поскольку к этому моменту все запросы перенаправляются в этот файл, вы должны быть в состоянии обработать запрос и вернуть свой ответ.
Как только вы доберетесь до точки, где вы фактически поместили приложение всистема четко определенных компонентов и модулей, затем переход на Laravel - или любую другую устоявшуюся среду - должна быть намного проще.
Это займет у вас long раз, если вы планируете делать все правильно.Надеюсь, это поможет, и удачи вам.