Я думаю, что ваш вопрос может быть довольно специфичным для PHP, так как я не вижу ни одной другой упомянутой вами серверной технологии, используемой таким образом.
PHP - забавный пример, поскольку его можно (довольно уродливым образом добавить) рассматривать как язык «все в одном» в отношении многих веб-проектов. Вы можете выполнять свои традиционные « фоновые » задачи - такие как операции с файлами и базами данных, а также создавать разметку « front-end ».
Это может явно привести к беспорядку спагетти, где нет реального разделения беспокойства, таким образом, это должно действительно быть осуждено в моем разуме. Например, если вы просматриваете источник WordPress, вы часто можете потеряться - и это один проект, в котором я виню язык, организация кодовой базы на самом деле очень хорошая.
В некоторой степени это можно исправить, используя « шаблонизатор » (такой как Smarty ) - но это все еще PHP, который создает « front-end» и одновременно предоставляет «back-end» функциональность. Это было намеренное решение, лежащее в основе дизайна PHP, однако, это ведь « процессор гипертекста »!
Таким образом, PHP может легко приспособиться как к « внешнему », так и к « внутреннему », что должно прояснить ваш пример. Следовательно, вы, скорее всего, правы в том, что PHP будет обрабатывать и создавать всю разметку для внешнего интерфейса, но он будет делать запросы где-то еще для сбора необходимых данных - скорее всего, сервис написан на одном из вышеупомянутых языков. ,
Лично я чувствую, что вся терминология "back-end" и "front-end" немного ... устарела, возможно. Я бы предпочел, чтобы вещи были просто переданы на стороне клиента и на стороне сервера; тогда нет никакой реальной двусмысленности. *
Совсем недавно я увидел спецификацию клиента, которая требовала, чтобы серверная система писала в node.js и связанных с ней инструментах, но хотела, чтобы клиентская сборка использовала среду PHP (Laravel). Это сопряжено со многими сопутствующими расходами, и, на мой взгляд, не является элегантным решением и может вызвать немало проблем в будущем.
Говоря лично, такого рода конфигурации кажутся такими, будто кто-то излишне включил PHP в другой стек - это означает, что требуется больше ресурсов, чем фактически требуется, персоналу технического обслуживания требуется более широкий спектр технологий и больше точек сбоя.
Кроме того, я также думаю, что есть очень немного сценариев, которые гарантируют такой вид промежуточного стека; большинство фоновых языков / фреймворков вполне способны генерировать разметку, необходимую для внешнего интерфейса. Хотя я стою исправляться там.
* Хотя, чтобы перевести ваш вопрос с ног на голову ... А как насчет серверных систем, созданных с использованием Javascript? (node.js;))
Редактировать:
Прочитав комментарий @itsbruce, я решил уточнить, что я имею в виду под неоднозначностью моей терминологии «front-end» / «back-end».
Традиционно эта терминология была бы хорошей, архитектурно-веб-приложения были намного проще - и, смею сказать, намного тупее. На мой взгляд, гораздо понятнее говорить «на стороне сервера» и «на стороне клиента», и это становится яснее по мере того, как становится распространенной текущая тенденция предоставления большей части обработки и логики клиенту.
Становится приемлемым делать достаточное количество обработки данных на стороне клиента (просто взгляните на некоторые из фреймворков javascript, которые в настоящее время находятся в тренде), но действительно ли это фронт-энд? Пользователь не видит его, он видит результаты этого - и по традиционным критериям, которые обычно рассматриваются как «back-end»; но это происходит в браузере сейчас ..
Точно так же, и невероятно актуально для этого вопроса, действительно ли создание разметки в PHP - это задача переднего плана? Я сомневаюсь в этом, быстрый просмотр рабочих мест показывает, что немногие внешние разработчики ожидают опыта или знаний PHP; тем не менее, интуиция предполагает, что разметка для интерфейса по своей сути является интерфейсной.
Сам факт того, что этот вопрос существует, служит примером того, как « передний конец » и « задний план » по своей сути неоднозначны и будут оставаться таковыми.
Обращаясь к задачам как «серверная» или «клиентская», что неоднозначность теряется, вы знаете, где выполняется код и какие языки будут использоваться. Если бы вы сказали « front-end » в примере, который предоставил OP, я сомневаюсь, что многие скажут: « О, так что, PHP на сервере, верно? ».