Нет никаких оснований, кроме как для сценариев для начинающих, там просто пытаются вывести результаты на страницу без какого-либо архитектурного мышления или планирования системы в долгосрочной перспективе.
Что вам следует сделать, это отделить ваш дизайн от логического php-кода, и компиляция дизайна должна быть сделана в конце выполнения скриптов.
если вы перепроектируете приложение, я бы, конечно, посоветовал вам начать с фреймворка, потому что фреймворк избавит вас от вредных привычек.
Начните с codeigniter и создайте простой блог, узнайте, как подключить / вставить / выбрать / обновить базу данных, научиться обрабатывать сеансы, изучить контроллеры и принципы их создания.
После того, как вы поработаете с ним, начните смотреть на плохо закодированное приложение с расстояния, не глядя на код или дизайн, но все же, что именно он делает, получает ли он результаты из базы данных, имеет ли он пользовательская система и т. д. и т. д.
затем приступите к реализации базового уровня приложения, такого как описанный выше, после того, как вы разработали базу данных, вы можете начать строить модели для выборки из базы данных в точке вашего приложения, начните создавать файлы базового представления, принимая выборки из плохо закодированного приложения и перекодирование их в новом приложении с учетом структуры и чистоты кодирования.
Надеюсь, это поможет вам начать миграцию, потому что я, конечно, не советую вам продолжать работать с таким приложением.
@ Митч
Событие показало, что ваш второй кусок кода чище, но он по-прежнему сочетает ваш взгляд с остальной частью вашего приложения, где и должно быть так:
<html>
<?php $this->load("segments/head"); ?>
<body>
<?php echo $this->wrap("span",$this->link("Some Linke",$this->var("homepage"))) ?>
</body>
</html>
выделенный набор методов для представления, чтобы предотвратить его взаимодействие с основной логикой, это будет заключено в объект для предотвращения области видимости, и только объект должен иметь возможность доступа к основной логике.