В далекие времена веб 1.0 одностраничные веб-приложения (Single Page Application) были как мамонты: редкие и, зачастую, построенные на костылях с большим количеством разной степени структурированности js кода.
В наше время 2.0 существуют и успешно развиваются не только серверные, но и клиентские фреймворки и библиотеки: JQuery, Backbone.js, Ember.js, CanJS, AngularJS, KnockoutJS.
По сути, разделение приложения на серверную и клиентскую части, в большинстве случаев оправдывается снижением нагрузки на сервер и упрощением поддержки большего количества клиентских платформ.
В нескольких статьях, постараемся разобраться, как за несколько минут создать простое одностраничное приложение, используя AngularJs и Yii Framework 2.0. Приложение будет содержать функционал CRUD (создание, просмотр, редактирование, удаление данных). Основой клиентской части будет AngularJS, а серверную часть построим на фреймворке Yii2.
Структура приложения
- Клиентское приложение. Обеспечивает пользовательский интерфейс.
- Серверное приложение. Обеспечивает работу с данными.
Для упрощения обслуживания и разработки, рекомендуется отделить RESTful API.
Технологический стек
Рассмотрим технологии, которые будем использовать в наших приложениях.
Клиентское приложение
В качестве основы клиентского приложения, мы будем использовать html, js и css. Подразумеваем, что читатель уже знаком с этими технологиями.
AngularJS 1.3
AngularJS является популярным, активно развивающимся javascript фреймворком. Хорошее знание фреймворка angularJS не обязательно, если вы имеете опыт работы с Yii2 и javascript. Если вы хорошо знаете jquery — забудьте все, angularjs построен совершенно иным образом.
CSS Bootstrap 3
Созданный командой твиттера, bootstrap является одним из самых распространенных в мире css фреймворков. Он содержит в себе большое количество js и css кода, и используя который можно быстро создавать отличные пользовательские интерфейсы.
Серверное приложение
В серверной части мы будем использовать фреймворк Yii 2.0 и php, mysql.
Введение;
Подготовка;
Серверная часть;
Клиентская часть 1;
Клиентская часть 2.