Мой процедурный код на самом деле выглядит довольно на ура. Довольно часто у меня есть функции, которые передают сложную структуру, например $ Стр. И это сделало бы довольно простым преобразование любого set_title ($ page, $ title) в $ page-> set_title ($ title) при необходимости. Это просто другое обозначение, нет практической разницы в том, что выполняют методы.
Дизайн шаблонов это широкое поле. Конечно, есть вещи, которые будут выглядеть глупо, если применять их к процедурному коду. И, честно говоря, некоторые шаблоны проектирования ООП не очень разумны и в коде на основе классов. Но если есть явный вариант использования для переписывания вашей унаследованной базы кода, попробуйте. Я сомневаюсь, что ваши коллеги-программисты имеют аллергию на объектно-структурированные интерфейсы.
Звучит так, как будто проблемы в вашем приложении проистекают из устаревшей и запутанной структуры. Если это было написано в стиле PHP3, например все еще использует $ HTTP_GET_VARS, тогда не пытайтесь. Однако, если это всего лишь глобальные переменные и независимое от кода состояние, то можно добавить некоторую объектную структуру.
PS: Глобальные переменные: синглтоны в ООП - это слишком сложные глобальные переменные. Большинству приложений нужен массив настроек конфигурации (просто читайте, никогда не пишите). Они принадлежат глобальному объекту или массиву. Все остальное опасно.