Quickstarters

Как создать бэкэнд для Yii 2?

40min

Введение

В этом учебном пособии вы узнаете как создать бэкенд для Yii 2 с использованием Back4app.

Yii 2 — это популярный фреймворк PHP с открытым исходным кодом, который помогает вам создавать безопасные и эффективные веб-приложения.

Интегрируя фреймворк Yii с Back4app, вы можете воспользоваться мощными функциями, такими как управление базами данных, облачные функции, REST и GraphQL API, аутентификация пользователей и запросы в реальном времени — все это ускоряет процесс разработки вашего бэкенда.

Вы увидите, как использовать среду Back4app, чтобы сократить ручную настройку сервера, позволяя вам сосредоточиться на написании вашего кода Yii 2.

Следуя этим шагам, вы получите практический опыт с основными функциональными возможностями, включая надежные средства управления безопасностью (ACL, CLP), планирование повторяющихся задач и настройку внешних интеграций через вебхуки.

К концу этого учебного пособия у вас будет надежная структура бэкенда для вашего проекта Yii 2, готовая к масштабированию в производственной среде или улучшению с помощью пользовательской бизнес-логики.

Вы также будете хорошо подготовлены к интеграции сторонних API или созданию новых функций в ваших веб-приложениях.

Предварительные условия

Чтобы завершить этот учебник, вам понадобятся:

  • Учетная запись Back4app и новый проект Back4app Начало работы с Back4app. Если у вас нет учетной записи, зарегистрируйтесь бесплатно и следуйте связанному руководству, чтобы подготовить ваш проект.
  • Локальная среда разработки Yii 2 Вы можете скачать Yii 2 с помощью Composer и следовать Официальному руководству Yii 2 для настройки.
  • Установленный PHP (версия 7.4 или выше) Вам понадобится совместимая среда PHP для запуска Yii 2 и управления пакетами Composer.
  • Знание PHP и основных концепций Yii 2 Если вы новичок в фреймворке Yii, ознакомьтесь с Официальной документацией Yii 2.

Убедитесь, что у вас есть все эти предварительные условия, прежде чем начинать. Наличие вашего проекта Back4app и локальной среды Yii 2 позволит вам легче следовать инструкциям.

Шаг 1 – Создание нового проекта на Back4App и подключение

Создать новый проект

Первый шаг к созданию бэкенда для Yii 2 – это создание нового проекта Back4app. Если вы еще этого не сделали, выполните следующие шаги:

  1. Войдите в свою учетную запись Back4app.
  2. Нажмите кнопку “Новое приложение” на вашей панели управления Back4app.
  3. Назовите ваше приложение (например, “Yii2-Backend-Tutorial”).
Document image


После создания проекта вы увидите его на своей панели управления Back4app. Это служит основой для всех конфигураций бэкенда, которые мы будем исследовать в этом руководстве.

Подключение через API Parse

Back4app использует платформу Parse под капотом. Хотя существует SDK Parse для PHP, вы также можете интегрировать свое приложение Yii 2 с Back4app, используя REST или GraphQL API Parse.

Этот подход гибок, позволяя вам писать код, который отправляет HTTP или GraphQL запросы в Back4app из ваших контроллеров или моделей Yii.

Получите свои ключи Parse

  1. На вашей панели управления Back4app перейдите в “Настройки приложения” или “Безопасность и ключи”.
  2. Найдите свой Идентификатор приложения, Ключ REST API, и URL сервера Parse (обычно https://parseapi.back4app.com).
Document image


Держите эти учетные данные под рукой. Они понадобятся вам при отправке запросов из вашего приложения Yii 2 в Back4app.

Шаг 2 – Настройка базы данных

Ваш проект Back4app поставляется с облачной базой данных, которая автоматически управляется сервером Parse. Вы можете создать модель данных и хранить в ней объекты, используя REST, GraphQL или AI-агента в Back4app.

Создание модели данных

  1. Откройте раздел “База данных” в вашей панели управления Back4app.
  2. Создайте новый класс (например, “Todo”) и добавьте столбцы, такие как title (String) и isCompleted (Boolean).
Создать новый класс
Создать новый класс


Вы также можете позволить Parse автоматически создать эти столбцы в первый раз, когда ваш код Yii отправляет данные. Более того, AI-агент Back4app может помочь вам настроить схему:

  1. Откройте AI-агента из вашей панели управления приложением или из меню.
  2. Опишите вашу модель данных (например, “Создать схему приложения Todo с классом Todo”).
  3. Позвольте AI-агенту сгенерировать схему.
Document image


Чтение и запись данных с использованием REST API

Ниже приведен пример сохранения Todo объекта с использованием REST API. Вы можете реализовать это в действии контроллера Yii 2, используя cURL или file_get_contents() PHP для отправки JSON данных.

Bash


Пример фрагмента кода PHP Yii 2 (с использованием cURL) в контроллере:

PHP


Запрос тех же данных с помощью REST может выглядеть так:

Bash


Чтение и запись данных с использованием GraphQL API

Вы также можете создавать и читать данные с помощью интерфейса GraphQL от Parse. Например, чтобы создать Todo:

GraphQL


В Yii 2 вы можете использовать библиотеки GraphQL или простые HTTP-запросы для взаимодействия с конечной точкой GraphQL Back4app: https://parseapi.back4app.com/graphql

Работа с живыми запросами (по желанию)

Для обновлений в реальном времени Back4app поддерживает Живые запросы, которые позволяют вам подписываться на изменения в классе. Хотя типичное использование в Yii 2 может быть менее распространенным, вы все равно можете включить Живые запросы в настройках Back4app и обрабатывать соединения WebSocket на PHP. Это более продвинуто, поэтому обратитесь к документации по живым запросам Parse для получения подробной информации о реализации функций в реальном времени в ваших веб-приложениях на PHP.

Шаг 3 – Применение безопасности с помощью ACL и CLP

Краткий обзор

Back4app предлагает Списки управления доступом (ACL) и Разрешения на уровне классов (CLP) для защиты ваших данных. ACL применяются к конкретным объектам, в то время как CLP определяют глобальные разрешения для каждого класса.

Document image


Настройка разрешений на уровне классов

  1. Перейдите в Базу данных на вашей панели управления Back4app и выберите класс (например, “Todo”).
  2. Откройте вкладку CLP, и настройте разрешения на чтение/запись (например, “Требуется аутентификация” или “Нет доступа”).

Настройка ACL

Вы можете установить ACL для отдельных объектов, добавив поле _ACL при создании или обновлении данных через REST или GraphQL. Например, используя REST:

Bash


Теперь этот объект может быть доступен только пользователю с указанным objectId.

Шаг 4 – Написание функций облачного кода

Зачем нужен облачный код

Использование облачного кода на Back4app позволяет вам запускать пользовательскую серверную логику без управления собственными серверами. Вы можете создавать бизнес-логику, валидации данных, или триггеры для создания, обновления и удаления объектов.

Пример функции облачного кода

Ниже приведена простая функция облачного кода (написанная на JavaScript), которая вычисляет длину текста:

main.js


Развертывание

Вы можете развернуть свой Cloud Code через Back4app CLI или непосредственно в разделе Cloud Code > Functions вашей панели управления Back4app:

  • Back4app CLI:
  • Панель управления: Скопируйте/вставьте ваш код в main.js и нажмите Развернуть.
Document image


Вызов вашей облачной функции

Вы можете вызвать вашу функцию из Yii 2, используя простой REST POST запрос:

Bash


Или через GraphQL:

GraphQL


Шаг 5 – Настройка аутентификации

Аутентификация пользователей в Back4app

Back4app использует класс Parse User в качестве основы для безопасной аутентификации. Вы можете создавать и проверять пользователей через REST или GraphQL вызовы.

Создание пользователя с помощью REST

Bash


Вход пользователя

Bash

Bash


Социальный вход

Для социальных входов (Google, Apple, Facebook и т.д.) настройте параметры OAuth в Back4app и ваше приложение Yii 2 для обработки необходимых токенов. Обратитесь к документации по социальному входу для получения рекомендаций, специфичных для провайдеров.

Подтверждение электронной почты и сброс пароля

Включите подтверждение электронной почты и сброс пароля в настройках электронной почты вашей панели управления Back4app для повышения безопасности пользователей:

  1. Перейдите в настройки электронной почты в вашей панели управления Back4app.
  2. Включите подтверждение электронной почты и настройте свои шаблоны электронной почты.
  3. Проверьте отправку и получение ваших электронных писем.

Шаг 6 – Обработка хранения файлов

Back4app предоставляет безопасное хранение файлов через систему Parse File. Хотя Parse PHP SDK является вариантом, мы снова проиллюстрируем REST для согласованности.

Загрузка файлов через REST

Bash


Это возвращает url для сохраненного файла. Вы можете затем сохранить этот URL в классе (например, Photo) для последующего извлечения.

Соображения по безопасности файлов

Вы можете ограничить загрузку файлов только для аутентифицированных пользователей или для конкретных ролей, настроив параметры сервера Parse в вашем приложении. Для более детального контроля комбинируйте эти настройки с вашими правилами ACL и CLP.

Шаг 7 – Подтверждение электронной почты и сброс пароля

Обзор

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

Конфигурация панели управления Back4App

  1. Включить проверку электронной почты в Настройки приложения > Настройки электронной почты.
  2. Настроить адрес “От” и шаблоны электронной почты.
  3. Проверить создание нового пользователя, чтобы подтвердить, что письмо для проверки отправлено.

Реализация

В вашем приложении Yii 2 направьте пользователей на маршрут, который вызывает конечную точку сброса пароля. Остальная часть процесса (например, отправка самого письма) обрабатывается инфраструктурой Back4app.

Шаг 8 – Планирование задач с помощью облачных заданий

Что делают облачные задания

Облачные задания в Back4app позволяют вам планировать рутинные задачи, такие как очистка данных или отправка уведомлений. Определите их в вашем облачном коде (main.js) и запланируйте их в панели управления.

Пример: Задание по очистке

main.js


Шаг 9 – Интеграция вебхуков

Определение

Вебхуки позволяют вашему приложению Back4app отправлять автоматические HTTP-запросы во внешние сервисы, когда происходят события, такие как создание нового Todo.

Конфигурация

  1. В вашей панели управления Back4app, перейдите в Дополнительно > Вебхуки.
  2. Добавьте конечную точку вебхука (например, https://your-external-service.com/webhook).
  3. Настройте триггеры (например, “Новая запись в классе Todo”).
Добавление вебхука
Добавление вебхука


С помощью вебхуков вы можете отправлять уведомления другим сервисам (таким как Slack, Stripe или вашему собственному API) всякий раз, когда создается или обновляется Todo объект.

Шаг 10 – Изучение панели администратора Back4App

Где это найти

Приложение администратора Back4app – это интерфейс с возможностью щелчка для управления вашими данными без написания кода. Вы можете активировать его, посетив App Dashboard > More > Admin App и затем Enable Admin App.

Активировать приложение администратора
Активировать приложение администратора


Функции

После создания администратора у вас будет выделенный поддомен для вашего приложения администратора. Это дает авторизованным членам команды чистый интерфейс для операций CRUD с вашей базой данных Back4app, просмотра журналов или анализа данных — код не требуется.

Document image


Заключение

В этом учебном пособии вы узнали как создать бэкенд для Yii 2 с использованием Back4app.

Вы настроили облачную базу данных, установили надежную безопасность с помощью ACL и CLP, запланировали фоновые задачи с помощью Cloud Jobs и интегрировали внешние сервисы через вебхуки. Вы также увидели, как безопасно управлять аутентификацией пользователей и хранением файлов.

Объединив открытый фреймворк Yii для создания веб-приложений с масштабируемой инфраструктурой Back4app, вы теперь имеете мощную среду, готовую для разработки и роста.

Следующие шаги

  • Перейдите к производству путем расширения ваших моделей данных, применения дополнительных настроек безопасности и оптимизации производительности.
  • Интегрируйте внешние API (платежные шлюзы, провайдеры электронной почты) через Cloud Code или прямые вебхуки.
  • Изучите официальную документацию Back4app для более глубоких тем, таких как расширенная безопасность, анализ журналов и оптимизация производительности.
  • Узнайте больше о создании сложных веб-приложений с Yii 2, используя управление доступом на основе ролей, стратегии кэширования и сложные отношения в базе данных.

С этой основой вы можете продолжать улучшать ваш проект Yii 2, сосредоточиться на бизнес-логике и предоставлять надежную, масштабируемую функциональность для ваших пользователей. Наслаждайтесь кодированием и созданием современных веб-приложений.