Как построить бекенд для Symfony?
В этом учебном пособии вы узнаете как создать бэкенд для Symfony с использованием Back4App.
Мы покажем вам, как использовать мощные функции Back4App, включая управление базами данных, Cloud Code, REST и GraphQL API, чтобы создать безопасный, масштабируемый и эффективный бэкенд, который будет работать без сбоев с вашим приложением Symfony.
Вы также узнаете, как обрабатывать аутентификацию пользователей, хранение файлов и обновления в реальном времени с помощью Live Queries (если это применимо к вашей архитектуре).
Используя быстрое развертывание и интуитивно понятную платформу Back4App, вы сэкономите время и усилия по сравнению с ручным управлением серверами и базами данных.
Вы получите практический опыт в области расширенной безопасности, планирования задач с помощью Cloud Jobs, настройки вебхуков и других важных функций для надежной разработки бэкенда.
После завершения этого учебника вы сможете уверенно расширять или настраивать свой Symfony бэкенд для продакшена, интегрировать внешние API и добавлять сложную бизнес-логику по мере необходимости.
- Настройка, специфичная для Symfony Убедитесь, что у вас установлена Symfony, и что PHP и Composer готовы.
- Базовые знания Symfony Знание контроллеров, сервисов и шаблонов будет полезным. Официальная документация Symfony.
- Node.js (по желанию, для некоторых инструментов сборки) Если вы планируете использовать инструменты на базе Node для фронтенд-задач, установите Node.js.
Убедитесь, что ваша среда Symfony и проект Back4App настроены перед началом. Это поможет вам без проблем следовать шагам.
- Создайте проект Back4App:
- Войдите в свою учетную запись Back4App.
- Нажмите на “Новое приложение” на панели управления.
- Назовите его (например, “Symfony-Backend-Tutorial”).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
После создания он появится на вашей панели управления Back4App. Этот проект является вашей основой для бэкенда.
- Подключитесь с помощью 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 Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
Ниже приведен пример использования Symfony HttpClient:
Эта служба поможет вам делать запросы к вашему Back4App бэкенду из Symfony.
На Back4App вы определите классы (таблицы), которые будут хранить ваши данные. Допустим, вы хотите класс Todo для хранения задач:
- Перейдите к базе данных в вашей панели управления Back4App.
- Создайте новый класс “Todo” и добавьте поля, такие как title (String) и isCompleted (Boolean).
![Создать новый класс Создать новый класс](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
В качестве альтернативы, позвольте Back4App AI Agent создать вашу модель данных:
- Откройте AI Agent в вашей панели управления проектом.
- Опишите вашу модель данных (например, “Создайте класс Todo с полями title и isCompleted.”).
- Сгенерируйте схему автоматически.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
Чтобы создать новый Todo из контроллера Symfony, вы можете сделать:
Для запросов, используйте GET-запрос с вашими учетными данными:
Вы также можете интегрировать GraphQL в Symfony, используя библиотеку клиента GraphQL. Пример мутации для создания Todo выглядит так:
Если вашему приложению Symfony нужны данные в реальном времени, вы можете интегрировать Живые запросы в более фронтенд или реальном времени микросервисном контексте. Настройте Живые запросы в Настройках сервера на Back4App, затем подключите клиент WebSocket. Symfony может реагировать на эти обновления или транслировать их через отдельный слой реального времени, если это необходимо.
ACL позволяют вам контролировать, кто может читать или записывать объект. Например, вы можете применить ACL в коде при создании данных с помощью REST API, добавив поля _ACL в ваш JSON. Например:
Разрешения на уровне класса позволяют вам устанавливать широкие правила доступа для целого класса:
- Откройте базу данных в панели управления Back4App.
- Выберите свой класс (например, “Todo”).
- Перейдите на вкладку Разрешения и настройте доступ на чтение/запись.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/MF1Uf7HSJF03Xg6djap9m_image.png?format=webp)
Для получения дополнительной информации посетите Руководство по безопасности приложений.
Облачный код позволяет вам запускать безопасный серверный JavaScript без управления инфраструктурой. Хотя Symfony написан на PHP, вы все равно можете перенести определенные задачи на Облачный код на Back4App для сложной логики, триггеров и валидаций.
- Используйте Back4App CLI или панель управления для развертывания main.js.
- Вызывайте ваши облачные функции через REST или GraphQL из ваших сервисов Symfony.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
Управление пользователями в Back4App основывается на классе Parse User . С помощью Symfony вы можете обрабатывать регистрацию пользователей, вход в систему и сброс пароля через вызовы REST или GraphQL.
Используйте сервис Symfony для обертывания этих вызовов, если вам нужны программные потоки пользователей.
Если вы планируете интеграцию входа через Google или Apple, обратитесь к Документации по социальному входу Back4App. Вам нужно будет настроить ваши OAuth приложения и сделать конкретные REST вызовы для завершения аутентификации.
После загрузки вы получите URL файла. Вы можете сохранить эту ссылку в любом классе (например, Todo) в качестве ссылки на этот файл.
- Перейдите к настройкам электронной почты в Back4App.
- Включите проверку электронной почты и шаблоны сброса пароля.
- Настройте строки «От» и «Тема» по мере необходимости.
Это гарантирует, что все регистрации требуют подтверждения действительности электронной почты.
Запланируйте это cleanupOldTodos задание в вашей панели управления Back4App для ежедневного выполнения, улучшая управление данными.
Вебхуки позволяют Back4App отправлять HTTP-запросы на внешние сервисы. Например, вы можете отправлять уведомления на конечную точку Slack каждый раз, когда создается новая Todo задачу:
- Перейдите в Разное > Вебхуки в вашей панели управления Back4App.
- Добавьте вебхук с указанием вашей внешней конечной точки.
- Запустите событие при создании объекта в классе Todo.
![Добавление вебхука Добавление вебхука](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Используйте Back4App Admin App для удобного интерфейса управления данными:
- Включите Admin App из App Dashboard > More > Admin App.
- Создайте администратора с безопасным именем пользователя и паролем.
- Назначьте пользовательский поддомен для легкого доступа.
![Включите Admin App Включите Admin App](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
Эта функция помогает не техническим членам команды просматривать и управлять записями, не углубляясь в код.
Вы узнали как создать бэкенд для Symfony с использованием Back4App. Это включало:
- Создание нового проекта на Back4App в качестве основы.
- Настройка базы данных с классами, полями и отношениями.
- Защита данных с помощью ACL и CLP.
- Использование Cloud Code для серверной логики.
- Управление аутентификацией пользователей (регистрация, вход, сброс пароля).
- Обработка хранения файлов с помощью REST API.
- Настройка Cloud Jobs для периодических задач.
- Интеграция вебхуков для подключения внешних сервисов.
- Навигация по панели администратора Back4App для удобного управления данными.
Эти шаги предоставляют вам надежную основу для создания и масштабирования вашего приложения Symfony. Расширяйте эту архитектуру, чтобы обрабатывать более сложную логику, интегрировать платежные шлюзы или добавлять расширенные функции безопасности. С Back4App вы экономите время и усилия на хостинг и инфраструктуру, чтобы сосредоточиться на предоставлении наилучшего пользовательского опыта.
- Создайте готовое к производству приложение Symfony путем настройки вашего бэкенда Back4App для более высокого трафика и продвинутых потребностей в производительности.
- Интегрируйте расширенные функции такие как доступ на основе ролей, аналитика или сторонние API для платежей.
- Изучите официальную документацию Back4App для более глубокого понимания безопасности, журналов и мониторинга.
- Посмотрите больше учебников чтобы объединить этот бэкенд с сервисами в реальном времени или создать динамические веб-сайты с живыми обновлениями.
Следуя этим стратегиям, ваш проект Symfony получает мощный и эффективный бэкенд. Используйте Back4App для упрощения обслуживания и быстрого развития возможностей вашего приложения. Удачи в создании вашего следующего шедевра Symfony!
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)