Quickstarters
Feature Overview
Как создать бэкенд для PHP?
40 мин
введение в этом учебном пособии вы узнаете как создать бэкенд для php с помощью back4app для поддержки динамического веб приложения на стороне сервера мы сосредоточимся на интеграции ключевых сервисов back4app, таких как управление базами данных, функции cloud code, rest и graphql api, аутентификация пользователей и запросы в реальном времени следуя этим шагам, вы создадите безопасный, масштабируемый и надежный бэкенд, который сможете использовать в своих проектах на php мы также рассмотрим, почему back4app ускоряет разработку бэкенда по сравнению с созданием всего с нуля, чтобы вы могли сэкономить время и усилия вы узнаете, как реализовать продвинутую безопасность, планировать задачи с помощью cloud jobs и подключать внешние интеграции с помощью вебхуков, полагаясь на инфраструктуру back4app к концу вы будете готовы развить этот базовый бэкенд на стороне сервера в полноценную производственную настройку или интегрировать сторонние api и пользовательскую логику для реального использования предварительные требования чтобы завершить этот учебник, вам потребуется учетная запись back4app и новый проект back4app начало работы с back4app https //www back4app com/docs/get started/new parse app если у вас нет учетной записи, создайте ее бесплатно и следуйте руководству, чтобы подготовить ваш новый проект базовая среда разработки php вы можете настроить это локально с установленным php или использовать хостинг, который поддерживает php официальная документация php https //www php net/docs php поддержка curl или способ отправки http запросов большинство установок php по умолчанию включают curl установка curl (официальная документация) https //curl se/docs/install html знание основ веб приложений понимание http, серверного скриптинга и основных концепций баз данных будет полезным убедитесь, что у вас есть эти предварительные условия перед тем, как погрузиться в шаги ниже наличие вашего проекта back4app и готовой среды php упростит процесс шаг 1 – настройка проекта back4app создание нового проекта первый шаг в создании вашего серверного бэкенда на back4app – это создание нового проекта если вы еще этого не сделали, выполните следующие шаги войдите в свою учетную запись back4app нажмите кнопку “новое приложение” в вашей панели управления back4app дайте вашему приложению имя (например, “php backend tutorial”) после создания ваш новый проект back4app появится в панели управления этот проект станет основой для предстоящих шагов конфигурации подключение к back4app через rest api поскольку мы работаем с php без специфического sdk для parse, мы будем полагаться на rest и graphql api back4app для связи вам понадобятся следующие учетные данные из вашей панели управления back4app идентификатор приложения ключ rest api url сервера parse (обычно https //parseapi back4app com ) вы можете найти их, перейдя в раздел настройки приложения или безопасность и ключи в php вы можете выполнять http запросы, используя curl или другие библиотеки ниже приведен короткий пример отправки post запроса в back4app $url = 'https //parseapi back4app com/classes/todo'; $data = array( 'title' => 'buy groceries', 'iscompleted' => false ); $payload = json encode($data); $ch = curl init($url); curl setopt($ch, curlopt post, 1); curl setopt($ch, curlopt postfields, $payload); curl setopt($ch, curlopt httpheader, array( 'x parse application id your application id', 'x parse rest api key your rest api key', 'content type application/json' )); curl setopt($ch, curlopt returntransfer, true); $result = curl exec($ch); curl close($ch); echo $result; // print api response этот фрагмент демонстрирует, как подключить ваше php приложение к вашему бэкенду back4app измените your application id , your rest api key , и другие параметры, чтобы они соответствовали вашим собственным ключам таким образом, ваш серверный код сможет читать и записывать данные в вашем новом проекте шаг 2 – настройка базы данных создание модели данных когда ваш проект back4app готов, пора структурировать вашу базу данных модель данных определяет, как организованы данные вашего веб приложения например, вы можете хранить задачи или блоги в классах перейдите в раздел “база данных” в вашей панели управления back4app создайте новый класс (например, “todo”) с полями такими как title (string) и iscompleted (boolean) back4app позволяет вам создавать столбцы для различных типов данных, включая string , number , boolean , pointer , relation , file , и другие вы также можете позволить схеме создаваться автоматически, когда вы впервые сохраняете объект из вашего php скрипта создание модели данных с использованием ai агента ai агент back4app может автоматизировать создание модели данных откройте ai агент на панели управления предоставьте описание вроде “пожалуйста, создайте новое приложение todo в back4app с полной схемой класса ” позвольте ai агенту создать схему базы данных для вас эта функция может сэкономить ваше время и поддерживать согласованность вашего серверного приложения чтение и запись данных (rest api) чтобы сохранить новый объект в вашем todo классе с использованием rest, вы можете отправить post запрос curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo на php вы бы сделали что то подобное с curl например $url = 'https //parseapi back4app com/classes/todo'; $data = array('title' => 'buy groceries', 'iscompleted' => false); // (same curl setup as before) чтобы запросить все существующие todo элементы curl x get \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ https //parseapi back4app com/classes/todo чтение и запись данных (graphql api) back4app также поддерживает graphql вы можете вставлять или извлекать данные, отправляя запросы или мутации graphql на https //parseapi back4app com/graphql вставка (мутация) mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } запрос query { todos { edges { node { objectid title iscompleted } } } } работа с живыми запросами (по желанию) если вам нужны обновления в реальном времени в вашем веб приложении, рассмотрите живые запросы включите живые запросы в вашей панели управления back4app, затем используйте подход websocket из вашей среды php (или отдельного клиента) для подписки на изменения хотя это более распространено в клиентах javascript, вы можете настроить отдельные сокеты в php, если это необходимо для получения подробной информации смотрите документация по живым запросам back4app https //www back4app com/docs/javascript/live queries шаг 3 – применение безопасности с помощью acl и clp краткий обзор acl (списки управления доступом) и clp (разрешения на уровне класса) защищают ваши данные, контролируя, кто может читать или записывать объекты это защищает ваш бэкенд от несанкционированного доступа пошагово установите разрешения на уровне класса (clp) в панели управления базой данных вы можете ограничить публичное чтение/запись или потребовать аутентификацию настройте acl для каждого объекта, если вам нужен детальный контроль acl может указывать доступ на чтение/запись для конкретного пользователя или роли для получения более подробной информации смотрите руководство по безопасности приложений https //www back4app com/docs/security/parse security шаг 4 – написание функций облачного кода почему облачный код облачный код позволяет вам выполнять серверный javascript для задач, таких как бизнес логика, триггеры или валидации, без настройки собственного сервера таким образом, вы можете скрыть определенный код, выполнять преобразования данных и многое другое пример функции простая функция облачного кода, которая вычисляет длину текста // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); эту функцию можно вызвать из вашего php скрипта с помощью rest curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"text" "hello back4app"}' \\ https //parseapi back4app com/functions/calculatetextlength развертывание вы можете развернуть cloud code через back4app cli https //www back4app com/docs/local development/parse cli или панель управления back4app модули npm если вам нужны дополнительные библиотеки, установите их с помощью npm и импортируйте в ваш cloud code это полезно для сложных серверных интеграций шаг 5 – настройка аутентификации включить аутентификацию по умолчанию ваш проект back4app имеет аутентификацию пользователей через класс parse user вы можете контролировать, должны ли пользователи подтверждать свою электронную почту или просто входить с помощью имени пользователя/пароля регистрация, вход, выход (rest) создать пользователя curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"username" "alice","password" "secret123","email" "alice\@example com"}' \\ https //parseapi back4app com/users войти в существующего пользователя curl x get \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ g \\ \ data urlencode 'username=alice' \\ \ data urlencode 'password=secret123' \\ https //parseapi back4app com/login социальный вход социальные входы (google, apple, facebook) возможны при настройке oauth потоков для инструкций обратитесь к документации по социальным входам https //www back4app com/docs/platform/sign in with apple шаг 6 – обработка хранения файлов настройка хранения файлов вы можете загружать файлы через rest curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type image/jpeg" \\ \ data binary "@/path/to/myimage jpg" \\ https //parseapi back4app com/files/myimage jpg ответ в формате json содержит url файла вы можете сохранить этот url в своих классах для ссылки на загруженный файл пример { "name" "myimage jpg", "url" "https //myapp back4app io/files/myimage jpg" } соображения безопасности вы можете разрешить загрузку файлов только от аутентифицированных пользователей или от определенных ролей настройте правила загрузки файлов в настройках сервера шаг 7 – подтверждение электронной почты и сброс пароля обзор подтверждение электронной почты гарантирует, что используются только действительные адреса электронной почты сброс пароля позволяет пользователям безопасно восстанавливать свои учетные записи настройка панели управления в панели управления back4app , перейдите в настройки приложения > электронная почта включите подтверждение электронной почты и настройте желаемые шаблоны включите сброс пароля чтобы пользователи могли восстанавливать учетные записи реализация после активации регистрации пользователей запускается проверка по электронной почте вы также можете запросить сброс пароля с помощью curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"email" "alice\@example com"}' \\ https //parseapi back4app com/requestpasswordreset шаг 8 – планирование задач с помощью облачных заданий что делают облачные задания облачные задания позволяют автоматизировать такие задачи, как удаление старых данных или отправка регулярных электронных писем вы можете написать их в вашем main js и запланировать их на панели управления back4app пример // main js parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); разверните этот код на back4app запланируйте задание на панели управления в разделе настройки приложения > настройки сервера > фоновая работа шаг 9 – интеграция вебхуков определение вебхуки позволяют отправлять http запросы в другие сервисы, когда происходят события, такие как создание новой записи в ваших классах back4app это полезно для внешних интеграций, включая платежные платформы, инструменты email маркетинга или уведомления в slack конфигурация откройте панель вебхуков в вашей панели управления back4app > еще > вебхуки добавьте новый вебхук с url адресом конечной точки, куда вы хотите отправить данные события выберите триггеры (например, создание объекта, обновление или удаление) вы также можете определить вебхуки в cloud code триггерах, выполняя http запросы с помощью модулей node js, таких как axios шаг 10 – изучение панели администратора back4app приложение back4app admin app является интерфейсом, ориентированным на модели, который позволяет нетехническим пользователям или администраторам управлять данными без написания кода он предлагает более интуитивно понятный опыт работы с данными, чем стандартная панель управления parse где это найти включите приложение администратора перейдя в панель приложений > дополнительно > приложение администратора нажмите “включить приложение администратора” и настройте свои учетные данные администратора выберите поддомен для доступа к приложению администратора войдите с вашими вновь созданными учетными данными администратора, чтобы начать управлять записями базы данных, учетными записями пользователей, ролями и многим другим заключение в этом учебном пособии вы узнали, как создать серверную часть для вашего php веб приложения с использованием back4app вы настроили безопасную базу данных, использовали функции реального времени, определили пользовательскую логику в cloud code и изучили аутентификацию пользователей, хранение файлов и запланированные задачи вы также увидели, как вебхуки и панель администратора могут интегрироваться с внешними сервисами и упрощать управление данными с этой основой у вас есть гибкая и масштабируемая серверная часть, которую вы можете расширять по мере необходимости для вашего следующего проекта на php продолжайте изучать продвинутые техники, пользовательские роли или сторонние api, чтобы сделать ваше приложение еще более мощным и динамичным следующие шаги усовершенствуйте ваше готовое к производству приложение на php добавив кэширование, балансировку нагрузки или продвинутую безопасность добавьте контроль доступа на основе ролей или уникальные потоки аутентификации, если это необходимо вашей базе пользователей консультируйтесь с официальной документацией back4app чтобы узнать больше о настройке производительности, логах и аналитике попробуйте дополнительные учебные пособия и используйте техники, изученные здесь, для создания реальных решений, от электронной коммерции до социальных платформ