AngularJS очень мощен, когда дело доходит до интерактивного HTML5 и связывания моделей. С другой стороны, PHP-фреймворки, такие как Yii, обеспечивают быструю, хорошо структурированную, безопасную и мощную разработку веб-приложений. Обе технологии предоставляют сложные средства для доступа к данным, итерации и верстки страниц.
Является ли хорошей или плохой практикой смешивать эти два подхода («настройка страницы» на стороне клиента и на стороне сервера) или это скорее противоречит смыслу интерактивных бесшовных веб-приложений AJAX на HTML5?
Я не говорю о создании JS с использованием PHP ( см. Этот вопрос ) - я говорю о создании представления, которое будет использовать AngularJS.
Я также знаю, что страница AngularJS должна (или может) связываться с сервером через службы REST для получения данных ( см. Этот вопрос ), а не извлекать их, например, из переменных PHP напрямую. Но мне кажется более удобным спроектировать «фрейм» для всего веб-приложения отдельно на PHP (например, создать главное меню или обработать авторизацию / сессии и т. Д.)
Ответы:
Похоже, что вам удобнее разрабатывать на PHP, вы позволяете этому не использовать весь потенциал веб-приложений.
Действительно возможно иметь PHP-рендеринг частичных и целых представлений, но я бы не рекомендовал это.
Чтобы в полной мере использовать возможности HTML и javascript для создания веб-приложения, то есть веб-страницы, которая больше похожа на приложение и в значительной степени зависит от рендеринга на стороне клиента, вам следует подумать о том, чтобы позволить клиенту нести всю ответственность за управление состоянием и представлением. Это будет легче поддерживать, и будет более удобным для пользователя.
Я бы порекомендовал вам более комфортно мыслить в более ориентированном на API подходе. Вместо того, чтобы PHP выводил предварительно отрендеренное представление и использовал angular для простых манипуляций с DOM, вы должны рассмотреть вопрос о том, чтобы PHP-бэкэнд выводил данные, которые должны обрабатываться при RESTFully, и предоставлял Angular его.
Использование PHP для визуализации представления:
/user/account
Как ту же проблему можно решить с помощью подхода, ориентированного на API, с помощью вывода JSON следующим образом:
api/auth/
а в Angular вы можете получить и обработать ответную клиентскую часть.
Смешивание как на стороне клиента, так и на стороне сервера, как вы предлагаете, может подойти для небольших проектов, где сопровождение не важно, и вы являетесь единственным автором, но я больше склоняюсь к ориентированному на API подходу, так как это будет более правильным разделением вариантов быть проще в обслуживании.
источник
a wall of javascript
? Я новичок в мире Angular / JS API после многих лет рендеринга PHP, поэтому эта дискуссия мне интересна.