Quickstarters
Feature Overview
How to Build a Backend for Yii 2?
40 мин
введение в этом учебном пособии вы узнаете как создать бэкенд для yii 2 с использованием back4app yii 2 — это популярный фреймворк php с открытым исходным кодом, который помогает вам создавать безопасные и эффективные веб приложения интегрируя фреймворк yii с back4app, вы можете воспользоваться мощными функциями, такими как управление базами данных, облачные функции, rest и graphql api, аутентификация пользователей и запросы в реальном времени — все это ускоряет процесс разработки вашего бэкенда вы увидите, как использовать среду back4app, чтобы сократить ручную настройку сервера, позволяя вам сосредоточиться на написании вашего кода yii 2 следуя этим шагам, вы получите практический опыт с основными функциональными возможностями, включая надежные средства управления безопасностью (acl, clp), планирование повторяющихся задач и настройку внешних интеграций через вебхуки к концу этого учебного пособия у вас будет надежная структура бэкенда для вашего проекта yii 2, готовая к масштабированию в производственной среде или улучшению с помощью пользовательской бизнес логики вы также будете хорошо подготовлены к интеграции сторонних api или созданию новых функций в ваших веб приложениях предварительные условия чтобы завершить этот учебник, вам понадобятся учетная запись back4app и новый проект back4app начало работы с back4app https //www back4app com/docs/get started/new parse app если у вас нет учетной записи, зарегистрируйтесь бесплатно и следуйте связанному руководству, чтобы подготовить ваш проект локальная среда разработки yii 2 вы можете скачать yii 2, используя composer https //getcomposer org/ и следовать официальному руководству yii 2 https //www yiiframework com/doc/guide/2 0/en для настройки установленный php (версия 7 4 или выше) вам понадобится совместимая среда php для запуска yii 2 и управления пакетами composer знание php и основных концепций yii 2 если вы новичок в фреймворке yii, ознакомьтесь с официальной документацией yii 2 https //www yiiframework com/doc/guide/2 0/en убедитесь, что у вас есть все эти предварительные условия, прежде чем начинать наличие вашего проекта back4app и готовой локальной среды yii 2 позволит вам легче следовать инструкциям шаг 1 – создание нового проекта на back4app и подключение создать новый проект первый шаг к созданию бэкенда для yii 2 – это создание нового проекта back4app если вы еще этого не сделали, выполните следующие шаги войдите в свою учетную запись back4app нажмите кнопку “новое приложение” в вашей панели управления back4app назовите ваше приложение (например, “yii2 backend tutorial”) после создания проекта вы увидите его на своей панели управления back4app это служит основой для всех конфигураций бэкенда, которые мы будем исследовать в этом руководстве подключение через api parse back4app использует платформу parse под капотом хотя существует sdk parse для php, вы также можете интегрировать свое приложение yii 2 с back4app, используя rest или graphql api parse этот подход гибок, позволяя вам писать код, который отправляет http или graphql запросы в back4app из ваших контроллеров или моделей yii получите свои ключи parse на вашей панели управления back4app перейдите в “настройки приложения” или “безопасность и ключи” найдите свой id приложения , rest api ключ , и url сервера parse (обычно https //parseapi back4app com ) держите эти учетные данные под рукой они понадобятся вам при отправке запросов из вашего приложения yii 2 в back4app шаг 2 – настройка базы данных ваш проект back4app поставляется с облачной базой данных, которая автоматически управляется сервером parse вы можете создать модель данных и хранить в ней объекты, используя rest, graphql или ai агента в back4app создание модели данных откройте раздел “база данных” в вашей панели управления back4app создайте новый класс (например, “todo”) и добавьте такие столбцы, как title (string) и iscompleted (boolean) вы также можете позволить parse автоматически создать эти столбцы в первый раз, когда ваш код yii отправляет данные более того, ai агент back4app может помочь вам настроить схему откройте ai агента из вашей панели управления приложением или из меню опишите вашу модель данных (например, “создайте схему приложения todo с классом todo ”) позвольте ai агенту сгенерировать схему чтение и запись данных с использованием rest api ниже приведен пример сохранения объекта todo с использованием rest api вы можете реализовать это в действии контроллера yii 2, используя curl или file get contents() php для отправки json данных 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 yii 2 (с использованием curl) в контроллере public function actioncreatetodo() { $url = "https //parseapi back4app com/classes/todo"; $data = \[ "title" => "buy groceries", "iscompleted" => false ]; $headers = \[ "x parse application id your application id", "x parse rest api key your rest api key", "content type application/json" ]; $ch = curl init($url); curl setopt($ch, curlopt post, 1); curl setopt($ch, curlopt postfields, json encode($data)); curl setopt($ch, curlopt httpheader, $headers); curl setopt($ch, curlopt returntransfer, true); $result = curl exec($ch); curl close($ch); // handle $result as needed, e g , parse json or redirect } запрос тех же данных с помощью rest может выглядеть так 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 запрос тех же данных с помощью rest может выглядеть так чтение и запись данных с использованием graphql api вы также можете создавать и читать данные с помощью интерфейса graphql от parse например, чтобы создать todo mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } в yii 2 вы можете использовать библиотеки graphql https //packagist org/packages/webonyx/graphql php или простые http запросы для взаимодействия с конечной точкой graphql back4app https //parseapi back4app com/graphql работа с живыми запросами (по желанию) для обновлений в реальном времени back4app поддерживает живые запросы , которые позволяют вам подписываться на изменения в классе хотя типичное использование в yii 2 может быть менее распространенным, вы все равно можете включить живые запросы в настройках back4app и обрабатывать соединения websocket на php это более продвинуто, поэтому обратитесь к документации по живым запросам parse https //www back4app com/docs/javascript live queries/parse livequery overview для получения подробной информации о реализации функций в реальном времени в ваших веб приложениях на php шаг 3 – применение безопасности с помощью acl и clp краткий обзор back4app предлагает списки управления доступом (acl) и разрешения на уровне классов (clp) для защиты ваших данных acl применяются к конкретным объектам, в то время как clp определяют глобальные разрешения для каждого класса настройка разрешений на уровне классов перейдите в базу данных в вашей панели управления back4app и выберите класс (например, “todo”) откройте вкладку clp , и настройте разрешения на чтение/запись (например, “требуется аутентификация” или “нет доступа”) настройка acl вы можете установить acl для отдельных объектов, включив поле acl при создании или обновлении данных через rest или graphql например, используя rest 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" "private todo", "acl" { "user object id here" { "read" true, "write" true }, " " { "read" false, "write" false } } }' \\ https //parseapi back4app com/classes/todo теперь этот объект может быть доступен только пользователю с указанным objectid шаг 4 – написание функций облачного кода почему облачный код использование облачного кода на back4app позволяет вам запускать пользовательскую серверную логику без управления собственными серверами вы можете создавать бизнес логику , валидации данных , или триггеры для создания, обновления и удаления объектов пример функции облачного кода ниже приведена простая функция облачного кода (написанная на javascript), которая вычисляет длину текста main js // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); развертывание вы можете развернуть свой cloud code через back4app cli или непосредственно в разделе cloud code > functions вашей панели управления back4app back4app cli панель управления скопируйте/вставьте ваш код в main js и нажмите развернуть вызов вашей облачной функции вы можете вызвать вашу функцию из yii 2, используя простой rest post запрос 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 или через graphql mutation { calculatetextlength(input { text "hello graphql" }) { result } } шаг 5 – настройка аутентификации аутентификация пользователей в back4app back4app использует класс parse user в качестве основы для безопасной аутентификации вы можете создавать и проверять пользователей через rest или graphql вызовы создание пользователя с помощью 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 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 в back4app и ваше приложение yii 2 для обработки необходимых токенов обратитесь к документации по социальному входу https //www back4app com/docs/platform/sign in with apple для получения рекомендаций, специфичных для провайдеров подтверждение электронной почты и сброс пароля включите подтверждение электронной почты и сброс пароля в настройках электронной почты вашей панели управления back4app для повышения безопасности пользователей перейдите в настройки электронной почты в вашей панели управления back4app включите подтверждение электронной почты и настройте свои шаблоны электронной почты проверьте что ваши электронные письма отправляются и принимаются правильно шаг 6 – обработка хранения файлов back4app предоставляет безопасное хранение файлов через систему parse file хотя parse php sdk является вариантом, мы снова проиллюстрируем rest для согласованности загрузка файлов через 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/png" \\ \ data binary "@path/to/local/image png" \\ https //parseapi back4app com/files/myimage png это возвращает url для сохраненного файла вы можете затем сохранить этот url в классе (например, photo ) для последующего извлечения соображения по безопасности файлов вы можете ограничить загрузку файлов только для аутентифицированных пользователей или для конкретных ролей, настроив параметры сервера parse в вашем приложении для более детального контроля комбинируйте эти настройки с вашими правилами acl и clp шаг 7 – подтверждение электронной почты и сброс пароля обзор подтверждение электронной почты гарантирует, что пользователи владеют адресами электронной почты, с которыми они регистрируются, а сброс пароля позволяет им восстанавливать учетные записи конфигурация панели управления back4app включите проверку электронной почты в настройки приложения > настройки электронной почты настройте адрес “от” и шаблоны электронной почты проверьте создание нового пользователя, чтобы подтвердить, что письмо для проверки отправлено реализация в вашем приложении yii 2 направьте пользователей на маршрут, который вызывает конечную точку сброса пароля https //www back4app com/docs/users/password reset остальная часть процесса (например, отправка самого письма) обрабатывается инфраструктурой back4app шаг 8 – планирование задач с помощью облачных заданий что делают облачные задания облачные задания в back4app позволяют вам планировать рутинные задачи, такие как очистка данных или отправка уведомлений определите их в вашем облачном коде ( main js ) и запланируйте их в панели управления пример задание по очистке 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); } }); шаг 9 – интеграция вебхуков определение вебхуки позволяют вашему приложению back4app отправлять автоматические http запросы на внешние сервисы, когда происходят события, такие как создание нового todo конфигурация в вашей панели управления back4app , перейдите в дополнительно > вебхуки добавьте вебхук конечную точку (например, https //your external service com/webhook ) настройте триггеры (например, “новая запись в классе todo”) с помощью вебхуков вы можете отправлять уведомления другим сервисам (таким как slack, stripe или вашему собственному api) всякий раз, когда создается или обновляется todo объект шаг 10 – изучение панели администратора back4app где это найти приложение администратора back4app – это интерфейс с возможностью щелчка для управления вашими данными без написания кода вы можете включить его, посетив панель приложений > дополнительно > приложение администратора и затем включить приложение администратора функции после создания администратора у вас будет выделенный подсайт для вашего приложения администратора это дает авторизованным членам команды чистый интерфейс для операций crud с вашей базой данных back4app, просмотра журналов или анализа данных — код не требуется заключение в этом учебном пособии вы узнали как создать бэкенд для yii 2 с использованием back4app вы настроили облачную базу данных, установили надежную безопасность с помощью acl и clp, запланировали фоновые задачи с помощью cloud jobs и интегрировали внешние сервисы через вебхуки вы также увидели, как безопасно управлять аутентификацией пользователей и хранением файлов объединив открытый фреймворк yii для создания веб приложений с масштабируемой инфраструктурой back4app, вы теперь имеете мощную среду, готовую для разработки и роста следующие шаги перейдите к производству путем расширения ваших моделей данных, применения дополнительных настроек безопасности и оптимизации производительности интегрируйте внешние api (платежные шлюзы, провайдеры электронной почты) через cloud code или прямые вебхуки изучите официальную документацию back4app для более глубоких тем, таких как расширенная безопасность, анализ журналов и оптимизация производительности узнайте больше о создании сложных веб приложений с yii 2, используя управление доступом на основе ролей, стратегии кэширования и сложные отношения в базе данных с этой основой вы можете продолжать улучшать ваш проект yii 2, сосредоточиться на бизнес логике и предоставлять надежную, масштабируемую функциональность для ваших пользователей наслаждайтесь кодированием и созданием современных веб приложений