Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zapiska.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
170 Кб
Скачать
☆

2.2 Архитектура приложения в фреймворке Yii2

Помимо модели, контроллера и вида, Yii использует фронт-контроллер, называемый приложением (application), который инкапсулирует контекст обработки запроса. Приложение собирает информацию о запросе и передает её для дальнейшей обработки соответствующему контроллеру.

Рисунок 2.1 отображает структуру приложения Yii:

Рисунок 2.1 Статическая структура приложения Yii

Рисунок 2.2 описывает типичную последовательность процесса обработки пользовательского запроса приложением:

Рисунок 2.2 Типичная последовательность работы приложения Yii

  1. Пользователь осуществляет запрос посредством URL http://www.example.com/index.php?r=post/show&id=1, и веб-сервер обрабатывает его, запуская скрипт инициализации index.php.

  2. Скрипт инициализации создает экземпляр приложения и запускает его на выполнение.

  3. Веб-приложение получает сведения о запросе клиента от модуля приложения request.

  4. Используя модуль urlManager, веб-приложение определяет запрошенный action и контроллер. В нашем случае контроллер это post, являющийся подклассом PostController, а действием — show, функциональность которого определяется контроллером.

  5. Создаётся экземпляр контроллера для последующей обработки запроса пользователя. В классе контроллера должно быть соответствие действия show методу actionShow. Далее создаются и применяются фильтры, связанные с данным действием, и, если фильтры позволяют, действие выполняется.

  6. Из базы данных выбирается модель с ID равным 1 и именем Post.

  7. В вид show передается модель Post.

  8. Представление получает и отображает атрибуты модели Post.

  9. Представление подключает некоторые виджеты.

  10. Сформированное представление вставляется в макет страницы.

  11. Действие завершает формирование представления и выводит результат пользователю.

3 Описание программной системы

3.1 Структура программного обеспечения

Программное обеспечение включает в себя:

  1. основной модуль;

  2. модуль регистрации пользователя;

  3. модуль авторизации пользователя;

  4. модуль проектирования и генерации;

  5. модуль проектов.

Основной модуль является точкой входа в программу и связывает остальные модули между собой.

Модуль регистрации пользователя предназначен для регистрации нового пользователя. Содержит в себе форму регистрации и сохраняет данные о пользователе в базу.

Модуль авторизации пользователя содержит в себе форму авторизации зарегистрированного пользователя, также взаимодействует с базой пользователей.

Модуль проектов содержит в себе список проектов для авторизованного пользователя и кнопки для создания, редактирования и удаления проекта.

Модуль проектирования и генерации содержит в себе конструктор для генерации модели, поле вывода сгенерированного кода, вкладки переключения между процессами.

Взаимодействие модулей приведено на рисунке 3.1.

Рисунок 3.1 Взаимодействие модулей программной системы

3.2 Описание основных разработанных классов

class SiteController extends Controller – основной контроллер программы

Методы:

public function behaviors() – возвращает массив access, содержащий в себе параметры доступа

public function actionIndex() – отображает страницу index

public function actionLogin() – авторизация пользователя

public function actionLogout() – выход пользователя из системы

public function actionRequestPasswordReset() – функция, принимающая запрос на сброс пароля

public function actionResetPassword($token) – функция, отвечающая за сброс пароля. Принимает на вход токен.

public function actionSignup() – функция, отвечающая за авторизацию пользователя

class ProjectsController extends Controller – контроллер модуля проектов

Методы:

public function actionIndex() – отображает index-страницу модуля

public function actionView($id) – отображает форму просмотра проекта. Принимает на вход идентификатор проекта.

public function actionCreate() – функция, отвечающая за создание нового проекта. После создания перенаправляет на форму редактирования проекта.

public function actionUpdate($id) – функция, отвечающая за редактирование проекта. Принимает на вход идентификатор проекта.

public function actionDelete($id) – функция, отвечающая за удаление проекта. Принимает на вход идентификатор проекта.

protected function findModel($id) – функция, возвращающая необходимую модель. Используется в предыдущих методах.

class Projects extends \yii\db\ActiveRecord – класс модели для таблицы Projects

Методы:

public static function tableName() – функция, возвращающая имя таблицы

public function rules() – функция, определяющая правила и параметры полей

public function attributeLabels() – функция, обеспечивающая корректное отображение меток

class SearchProjects extends Projects – класс, отвечающий за поиск проектов.

Методы:

public function rules() – функция, определяющая правила и параметры полей

public function search($params) – функция, реализующая поиск проекта с заданными параметрами $params

class SignupForm extends Model – класс формы регистрации пользователя

Методы:

public function rules() – функция, определяющая правила и параметры полей

public function signup() – функция, отвечающая за регистрацию нового пользователя и генерацию ключа авторизации

class PasswordResetRequestForm extends Model – класс формы сброса пароля

Методы:

public function rules() – функция, определяющая правила и параметры полей

public function sendEmail() – функция, отвечающая за отправку письма с новым паролем и генерирующая токен сброса пароля

_form.php – форма редактирования проекта

Функции JQuery:

$('#process1button').click(function() – функция, реализующая отображение диаграммы первого процесса

$('#process2button').click(function() – функция, реализующая отображение диаграммы второго процесса

$('#savebutton').click(function() – функция, отвечающая за сохранение модели в базе

$('#clearbutton').click(function() – функция, отвечающая за очистку поля конструктора модели

$('#gencode').click(function() – функция, отвечающая за генерацию кода по спроектированной модели

function matrixArray(rows,columns) – функция, эмулирующая двумерные массивы в JQuery

$(document).on('dblclick', 'div.change_off',function() – функция, реализующая редактирование текста события по двойному нажатию клавиши мыши

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]