yii2 + angular
yii2 + angular
Здравствуйте. В последнее время слышу, что многие используют yii2 для back и angular для front. Можете рассказать в чем преимущества? (быстрее работает?) и есть пара вопросов по этому поводу. Как angular вообще прикручивается к yii2? можете скинуть примеры или уроки? да и вообще, помимо angular... что еще используют?
Re: yii2 + angular
Одностраничное приложение
Не всегда нужно чтобы весь сайт был одностратичником, а достаточно нескольких разделов. Например кабинет пользователя.
Прикручивается мимо yii2.
Попытки сделать виджеты наверняка есть, но думаю проще делать мимо.
Не встречал. Да и не нужны они.
От Yii2 требуется:
- отдать html
- отдать данные, заинлайненные или rest'ом или graphql или еще каким xml-rpc.
- принять данные, или rest'ом или graphql или еще каким xml-rpc.
остальное обычная фронтенд разработка на js. с вебпаками и прочим.
все что угодно.
React.js, Vue.js и т.д.
Что по проекту требуется, то и используют.
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Тем более что окажется что оно вам и не нужно было, странное это.
Re: yii2 + angular
вопрос, если это одностраничное, для чего yii2 там вообще нужен, если ту же админку и на angular вроде можно сделать.. )
Вы писали:
Где можно хотябы примеры проектов посмотретЬ, т.к. я даже не представляю как это делать.... что значит делать мимо?
Вы писали:
Прикручивается мимо yii2.
Попытки сделать виджеты наверняка есть, но думаю проще делать мимо.
Код: Выделить всё
все что угодно.
React.js, Vue.js и т.д.
Re: yii2 + angular
Непонятно что вы хотите увидеть.
По тому как пишется фронтенд на React, Angular, Vue полно документации, видеоуроков, статей.
Странный вопрос. А что там представлять.
Ну ок, чтобы представили
Возьмите какой-нибудь микро-фреймворк.
Например Slim
Добавьте к нему Plates
И напишите форму регистрации пользователя.
Затем, уберите Plates. И напишите REST для регистрации.
А саму форму напишите на React, Angular, Vue.
html для нее отдавайте статикой.
Не использовать виджеты Yii, подключать css и js без AssetBundle. Вот и будет мимо.
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Тем более что окажется что оно вам и не нужно было, странное это.
Re: yii2 + angular
а какой плюс тогда от этого?) зачем так делать?)
Re: yii2 + angular
вы уже сделали на React, Angular, Vue форму регистрации?
когда сделаете - прикрутите ее к Yii2.
и все поймете.
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Тем более что окажется что оно вам и не нужно было, странное это.
Re: yii2 + angular
Для построения сложных интерактивных интерфейсов, где всё можно переключать/перетаскивать/скроллить в реальном времени. Целиком построенных на Ajax. Пример - почта Gmail. Плюс размещения верстки только в JavaScript - не нужно копипастить один и тот же HTML-код в JavaScript и PHP.
Ну вот как раз на Angualar или Vue выводят всю вёрстку с анимациями (front) с подгрузкой и отправкой данных по Ajax.
А в PHP на сервере (back) делают только JSON API для этих Ajax-запросов.
Поэтому от Yii2 для этого достаточно оставить только контроллеры для JSON с валидацией и ActiveRecord. Остальное не использовать. Или взять лёгкий микрофреймворк без всего лишнего.
-
- Сообщения: 13
- Зарегистрирован: 2019.06.06, 16:28
Re: yii2 + angular
Всем Hello! Думал тему новую создать но вроде эта подходит, хотя... В кратце у меня такая ситуация, необходимо проект на yii2 + angularJS превратить в проект yii2 + Angular11 (на данный момент) + какое то длительное время AngularJS( с помощью специального модуля NgUpgrade- который позволяет модернизировать AngularJS до Angular без удаления AngularJS). Сейчас я в стадии понимания как вообще провернуть такую штуковину, так как по факту в приложении будут одновременно работать 3 фреймфорка и я не могу продумать как лучше сделать архитектуру? Обернуть Angularом свзяку из AngularJS + Yii2, либо внутри Yii2 создать папочку с angular. Все это дело осложняется тем что в проекте нет особо компонентного подхода для AngularJS,если говорить упрощенно все сделано так все js ники с AngularJS-ными контроллерами были положены в yii2->web->js. В файле layout->main.php (добавляется куча скриптов для каждого js-ного файла - контроллера), компонентного подхода нету (в одном файле js может быть до 1-30 angularJs контроллером). И из этих js-ных файлов пускаются запросы на yii2-шные контроллеры, которые обрабатывают их и возвращают данные. которые потом используются в тех же jsных файлах-контроллерах. Короче yii2 сильно связан с AngularJS и править пути в каждом файле чтобы все не поломать не особо представляется возможным. И вот в такой ситуации нужно обновить AngularJS связанный с yii2 до современного Angular11, причем так чтобы не дергать на данный момент старый код. Инструкций по обновлению AngularJS в Angular мало, точнее можно считать что их почти нет. Но тут ведь еще и yii2 добавлен. Вообщем если кто проходил подобное или имеет свое особенное мнение как начать и организовать хотя бы архитектуру (куда пихать Angular) пожалуйста помогите неопытному неофиту =). А да там еще webpack есть который некоторые jsные файлы в единый фаилы собирает. Только вот как его совместить с angularовским angular.cli (который так же имеет webpack под капотом).
Re: yii2 + angular
Это не очень удачно, что всё смешано. В идеале делают структуру с двумя папками-проектами:KonstantinDigit писал(а): ↑2021.04.29, 20:27 как начать и организовать хотя бы архитектуру (куда пихать Angular) пожалуйста помогите неопытному неофиту =)
Код: Выделить всё
api/ # Yii2
web/
src/
vendor/
composer.json
...
frontend/ # Angular
src/
node_modules/
package.json
...
-
- Сообщения: 13
- Зарегистрирован: 2019.06.06, 16:28
Re: yii2 + angular
Спасибо! А насчет angular.cli или webpack? с учетом что структура проекта сейчас выглядит примерно такElisDN писал(а): ↑2021.04.30, 13:52Это не очень удачно, что всё смешано. В идеале делают структуру с двумя папками-проектами:KonstantinDigit писал(а): ↑2021.04.29, 20:27 как начать и организовать хотя бы архитектуру (куда пихать Angular) пожалуйста помогите неопытному неофиту =)
где на Yii2 делают только API, а весь фронтенд на JS. Тогда таких проблем смешивания не возникает.Код: Выделить всё
api/ # Yii2 web/ src/ vendor/ composer.json ... frontend/ # Angular src/ node_modules/ package.json ...
Код: Выделить всё
Папка с проектом на yii2 + angularJS.
[***************************************************
yii2Project (тип basic)/
assets - AppAsset.php для подключения ресурсов AngularJS не используется
...
controllers
...
web/js/ - здесь лежат все скрипты для angularJS
...
views/layouts/main.php - сюда загружается angularJS 1.5.5 через https://ajax.googleapis.com... и
... далее в теге head все контроллеры AngularJS,
tsconfig.json - в проекте есть typescript правда пока что он просто условно. Банально крупные файлы
с кучей контроллеров решили сделать с расширением .ts просто попробовать их
... скомпилировать через webpack и чтобы оно все запускалось (все это подготовка к
переходу на ts)
webpack.config.js - вебпак берет крупные файлы js/ts с кучей контроллеров AngularJS из web/js и
минифицирует их. И они подключаются в main.php
****************************************************]
А далее я правильно понимаю что вы рекомендуете сделать еще одну отдельную папку с Angular
[
Angular - и начать модернизацию с помощью ngUpgrade связав Angular с
AngularJS и его файлами yii2Project/web/js
]
Так же у Angular свой angular.cli тогда получается, я могу убрать webpack из папки с yii2, и
настроить Angular.cli так чтобы он выполнял тоже самое что webpack.
Я просто хочу убедиться что мыслю в нужном направлении, так как делаю это впервые
и не знаю как лучше или хуже.
Re: yii2 + angular
Документация советует стартовать новый проект с angular cli.
-
- Сообщения: 13
- Зарегистрирован: 2019.06.06, 16:28
Re: yii2 + angular
Понятно, а тут возник еще такой вопрос, а вообще как рекомендуется использовать yii2 в связке с Angular, что должно - что загружать. Ангуляр должен через REST дергать yii2 или yii2 сначала грузиться и потом как у меня в виде загружает AngularJS. В моем случае у меня через yii2шный web/index.php загружается сначала приложение yii2 и оно внутри своего основного шаблона в директории в views\layouts\main.php содержит код который на данный момент грузит AngularJS.Таким образом грузиться фронт, и внутри AngularJS посылает запросы на yii2 контроллеры. Но если с AngularJS это все работает, то как быть с Angular, ведь он вообще компилирует index.html, а не php. более того непонятно как его заставить компилировать index.html отдельно от сопутствующих служебных файлом чтобы поместить его в папку с шаблонами yii2, Я правильно понимаю что такой подход это утопия или так сделать все-таки возможно? Какой вообще должен быть подход?
Re: yii2 + angular
Как сказано выше, сделать отдельно папку frontend с Angular-проектом под ваш домен site.com и отдельную папку api с проектом на Yii2 с REST-контроллерами без шаблонизатора на поддомене api.site.com или префиксе site.com/api