А конкретно? Есть страница, причем точка входа - любая страница сайта. Следовательно, перед выводом каждой страницы необходимо определять обсужденный выше $PATH, т.е. вставить в HTML код <?php $PATH= ... ?>. Диалектика. Естественный вопрос: в каком месте разметки эта вставка желательна? Понятно, что ДО использования данной переменной. Просто видел варианты до DOCTYPE. Насколько принята такая конструкция?
Уже плохо. Точка входа должна быть всего одна - index.php в корне сайта. И отсюда все следует. Ни в каком. Шаблон надо подтягивать в самом конце, когда все данные уже готовы. И отдавать ему. Задача шаблона - рассовать данные в нужные места, сгенерить HTML, если нужно, окромя прописанного заранее. У вас спутаны понятия верстки и PHP-кода. HTML никак не влияет на PHP. А PHP, в свою очередь, не попадает на клиент. PHP исполняется на сервере. HTML ли вокруг него, или еще что, ему не важно. Это лишь данные, которые интерпретатор отдает клиенту. Можно отдавать готовые, можно генерировать динамические (для чего и создавался PHP), можно комбинировать в любых пропорциях. И даже нужно.
Не спутано. Каким образом можно заставить каждого пользователя пройти через корень сайта? И что под этим понимается: через главную страницу? Пользователь ведь и уйти может от такого неуважения к себе. И еще: использование шаблона подразумевает однотипность страниц. Но так случается далеко не всегда.
Какое неуважение? Зачем кого-то заставлять? Просто все ссылки на сайте должны вести только на index.php, но при этом содержать GET_параметры, указывающие на то, какую страницу нужно отобразить. В index.php уже разбирайте, что да как, что показать пользователю нужно. Для него это будут разные страницы. С уникальными адресами. Все ок. Никто никого не унижает и не обижает. Так работают все соцсети, так работает гугл, так работает Steam, так работает сегодня 95% грамотно написанного интернета. В ряде случаев вместо гет-параметров имеют место псевдо-локейшены. Это, так называемые ЧПУ-ссылки. Выглядят чуть иначе, а суть та же. Все равно все адресуется на index, а там уже разруливается. Так, например, устроены ссылки на данном форуме. index - это не главная страница. У вас снова подмена понятий имеет место. Это всего лишь точка входа. Точка, откуда приложение стартует. А что она отобразит - зависит от логики этого приложения. Вы мыслите категориями, которые приняты в статичном сайтостроении. Один файл - одна страница. В динамическом сайтостроении эта формула не обязана выполняться. Один файл - много страниц. При этом этот один файл, в ходе работы может цеплять к себе сотни других. И каждый из сотни будет отдавать лишь кусочек чего-то целого. Да ради бога. Программист решает, как должен отображаться сайт. И только он. И использование шаблона не подразумевает однотипность всех страниц. Никто не мешает использовать много шаблонов - свой для каждого случая.
Нет никакого статичного сайта. Это видно уже, как минимум, из наличия INCLUDE. Просто динамика м.б. разной. И по разному построены взаимосвязи. Идея следовать путем через переадресацию в index.php, GET, затем делать сопоставление имен страниц и пр., пр. для формирования страницы не является "абсолютной истиной". Все зависит от решаемой задачи и желания заплатить за избыточность. Для поездок в магазин можно купить Мерседес, Запорожец, велосипед или использовать такси. Я использую ШАБЛОН страницы (php). Можно назвать его "мать всех страниц". И ничто не мешает начать его с "config.php", это тот же ваш index.php. Т.е. организую вход/отображение страницы точно также через одну точку. Только без заморочек с переадресацией, затем сопоставлением URL и пр.
Избыточность - это множество точек входа как раз. Вместо одного приложения получается несколько. Каждое независимое. Каждое надо обслуживать. Какую-то правку, которую мне достаточно у себя сделать в одном месте, вам придется много раз дублировать. Это нарушение парадигмы DRY - dont repeat yourself. Это повышение риска ошибки в силу того, что при множественном обслуживании разных точек входа одного приложения возрастает риск ошибки из-за человеческого фактора. Это снижение уровня контроля над работой приложения. Это излишнее усложнение с точки зрения обеспечения безопасности. Ни слова не было про переадресации и какие-то сверхсложные задачи. Банально, есть ссылка inde.php?page=settings А в index.php есть какой-нибудь switch, в котором проверяется значение $_GET['page']. И, для 'settings' он инклудит такой-то файл, отвечающий за отображение страницы настроек. Это вот самый примитивный вариант, но он уже вполне рабочий.
Ничего подобного. Вы не поняли. Точно также я делаю 1 правку на все страницы. Это как топ и футер на любой странице. Меню и т.д. Это все общее: 1 шаблон для всех страниц. Навскидку PHP: <? php include ('/top.php');?> .................... прочее .......... <? php include ('/footer.php');?> Ничто не мешает вверху иметь обсуждаемый нами config.php