Когда я делаю это, это многошаговый процесс. Как правило, существует существующий продукт, который нужно продолжать работать. Переписать с нуля редко бывает возможным, даже если вы в конце концов закончите.
- Начинайте ругаться вручную, включайте операторы и внедряйте автозагрузчик, где это возможно (занимает много проходов)
- Создайте вспомогательный скрипт для имитации магических кавычек и регистрации глобалов. Это так, чтобы вы могли отключить его в PHP, сохраняя при этом существующий код, работающий
- Постепенно удаляйте чрезмерные вызовы strip_slashes или add_slashes, если применимо. Вспомогательный скрипт позволяет вам делать это для каждого файла.
- Убедитесь, что ваши переменные имеют правильную область видимости
- Отделите ваш код презентации. Рассмотрим Smarty или альтернативную систему шаблонов
- Переместить вызовы БД в PDO и использовать подстановку параметров для всего
- Посмотрите на код и подумайте о заглушении фронт-контроллера
Затем я смотрю на проект и определяю, как я собираюсь изменить саму логику. Часто, если функций вообще нет, мой первый шаг - обернуть обычное поведение в статические методы. Получите столько же повторного использования без особых усилий, так что я пока не занимаюсь организацией.
После того, как избыточность уменьшится, я доберусь до организации. Именно на этом этапе я начинаю планировать свои модели классов и превращать функции в чистые методы. Это также время для автоматических тестов (phpunit). Как только я почувствую себя достаточно уверенно, я добавлю несколько контроллеров и интегрирую шаблоны, а затем я закончу ... за исключением одного или двух проходов.
Для меня это все о том, чтобы определить, где я нахожусь, где я хочу быть, и составить план, который можно выполнить за несколько небольших шагов. У каждого свои цели, поэтому нет никакого магического плана, которому нужно следовать, кроме ваших.