Quickstarters

Как построить бекенд для Symfony?

28min

Введение

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

Мы покажем вам, как использовать мощные функции Back4App, включая управление базами данных, Cloud Code, REST и GraphQL API, чтобы создать безопасный, масштабируемый и эффективный бэкенд, который будет работать без сбоев с вашим приложением Symfony.

Вы также узнаете, как обрабатывать аутентификацию пользователей, хранение файлов и обновления в реальном времени с помощью Live Queries (если это применимо к вашей архитектуре).

Используя быстрое развертывание и интуитивно понятную платформу Back4App, вы сэкономите время и усилия по сравнению с ручным управлением серверами и базами данных.

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

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

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

  • Аккаунт Back4app Зарегистрируйтесь бесплатно здесь.
  • Новый проект Back4app Начало работы с Back4app.
  • Настройка, специфичная для Symfony Убедитесь, что у вас установлена Symfony, и что PHP и Composer готовы.
  • Базовые знания Symfony Знание контроллеров, сервисов и шаблонов будет полезным. Официальная документация Symfony.
  • Node.js (по желанию, для некоторых инструментов сборки) Если вы планируете использовать инструменты на базе Node для фронтенд-задач, установите Node.js.

Убедитесь, что ваша среда Symfony и проект Back4App настроены перед началом. Это поможет вам без проблем следовать шагам.

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

  1. Создайте проект Back4App:
    • Войдите в свою учетную запись Back4App.
    • Нажмите на “Новое приложение” на панели управления.
    • Назовите его (например, “Symfony-Backend-Tutorial”).
Document image


После создания он появится на вашей панели управления Back4App. Этот проект является вашей основой для бэкенда.

  1. Подключитесь с помощью REST или GraphQL:
    • В настройках вашего приложения “Настройки приложения” или “Безопасность и ключи” найдите ваш Идентификатор приложения и Ключ REST API (и конечную точку GraphQL, если вы планируете использовать GraphQL).
    • Запишите ваш URL-адрес Parse Server (например, https://parseapi.back4app.com).
    • Поскольку Symfony не имеет родного SDK Parse, вам придется полагаться на HTTP-клиент Symfony или библиотеку, такую как Guzzle, для взаимодействия с REST или GraphQL API Back4App.
Document image


Ниже приведен пример использования Symfony HttpClient:

PHP


Эта служба поможет вам делать запросы к вашему Back4App бэкенду из Symfony.

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

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

На Back4App вы определите классы (таблицы), которые будут хранить ваши данные. Допустим, вы хотите класс Todo для хранения задач:

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


В качестве альтернативы, позвольте Back4App AI Agent создать вашу модель данных:

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


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

Чтобы создать новый Todo из контроллера Symfony, вы можете сделать:

PHP


Для запросов, используйте GET-запрос с вашими учетными данными:

Bash


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

Вы также можете интегрировать GraphQL в Symfony, используя библиотеку клиента GraphQL. Пример мутации для создания Todo выглядит так:

GraphQL


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

Если вашему приложению Symfony нужны данные в реальном времени, вы можете интегрировать Живые запросы в более фронтенд или реальном времени микросервисном контексте. Настройте Живые запросы в Настройках сервера на Back4App, затем подключите клиент WebSocket. Symfony может реагировать на эти обновления или транслировать их через отдельный слой реального времени, если это необходимо.

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

ACL (Списки контроля доступа)

ACL позволяют вам контролировать, кто может читать или записывать объект. Например, вы можете применить ACL в коде при создании данных с помощью REST API, добавив поля _ACL в ваш JSON. Например:

JSON


CLP (Разрешения на уровне класса)

Разрешения на уровне класса позволяют вам устанавливать широкие правила доступа для целого класса:

  1. Откройте базу данных в панели управления Back4App.
  2. Выберите свой класс (например, “Todo”).
  3. Перейдите на вкладку Разрешения и настройте доступ на чтение/запись.
Document image


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

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

Облачный код позволяет вам запускать безопасный серверный JavaScript без управления инфраструктурой. Хотя Symfony написан на PHP, вы все равно можете перенести определенные задачи на Облачный код на Back4App для сложной логики, триггеров и валидаций.

Пример: Проверка задачи перед сохранением

JS


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

  1. Используйте Back4App CLI или панель управления для развертывания main.js.
  2. Вызывайте ваши облачные функции через REST или GraphQL из ваших сервисов Symfony.
Document image


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

Управление пользователями в Back4App основывается на классе Parse User . С помощью Symfony вы можете обрабатывать регистрацию пользователей, вход в систему и сброс пароля через вызовы REST или GraphQL.

Регистрация / Вход через REST

Bash


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

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

Если вы планируете интеграцию входа через Google или Apple, обратитесь к Документации по социальному входу Back4App. Вам нужно будет настроить ваши OAuth приложения и сделать конкретные REST вызовы для завершения аутентификации.

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

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

Bash


После загрузки вы получите URL файла. Вы можете сохранить эту ссылку в любом классе (например, Todo) в качестве ссылки на этот файл.

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

Настройка электронной почты

  1. Перейдите к настройкам электронной почты в Back4App.
  2. Включите проверку электронной почты и шаблоны сброса пароля.
  3. Настройте строки «От» и «Тема» по мере необходимости.

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

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

Пример облачного задания

JS


Запланируйте это cleanupOldTodos задание в вашей панели управления Back4App для ежедневного выполнения, улучшая управление данными.

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

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

  1. Перейдите в Разное > Вебхуки в вашей панели управления Back4App.
  2. Добавьте вебхук с указанием вашей внешней конечной точки.
  3. Запустите событие при создании объекта в классе Todo.
Добавление вебхука
Добавление вебхука


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

Используйте Back4App Admin App для удобного интерфейса управления данными:

  1. Включите Admin App из App Dashboard > More > Admin App.
  2. Создайте администратора с безопасным именем пользователя и паролем.
  3. Назначьте пользовательский поддомен для легкого доступа.
Включите Admin App
Включите Admin App


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

Заключение

Вы узнали как создать бэкенд для Symfony с использованием Back4App. Это включало:

  • Создание нового проекта на Back4App в качестве основы.
  • Настройка базы данных с классами, полями и отношениями.
  • Защита данных с помощью ACL и CLP.
  • Использование Cloud Code для серверной логики.
  • Управление аутентификацией пользователей (регистрация, вход, сброс пароля).
  • Обработка хранения файлов с помощью REST API.
  • Настройка Cloud Jobs для периодических задач.
  • Интеграция вебхуков для подключения внешних сервисов.
  • Навигация по панели администратора Back4App для удобного управления данными.

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

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

  • Создайте готовое к производству приложение Symfony путем настройки вашего бэкенда Back4App для более высокого трафика и продвинутых потребностей в производительности.
  • Интегрируйте расширенные функции такие как доступ на основе ролей, аналитика или сторонние API для платежей.
  • Изучите официальную документацию Back4App для более глубокого понимания безопасности, журналов и мониторинга.
  • Посмотрите больше учебников чтобы объединить этот бэкенд с сервисами в реальном времени или создать динамические веб-сайты с живыми обновлениями.

Следуя этим стратегиям, ваш проект Symfony получает мощный и эффективный бэкенд. Используйте Back4App для упрощения обслуживания и быстрого развития возможностей вашего приложения. Удачи в создании вашего следующего шедевра Symfony!