Шаблон бэкенда приложения Todo
PHP — Схема, API и руководство по AI
Готовая к производству PHP Todo схема бэкенда и Стартовый комплект на Back4app: диаграмма ER, словарь данных, JSON-схема, API-площадка, примеры кода и однонажатийный AI Agent для развертывания за считанные минуты.
Ключевые выводы
На этой странице вы получите готовую к производству схему, одноразовый AI-промпт и пошаговый PHP код — так вы сможете запустить приложение Todo без создания бэкенда.
- Развертывание за минуты — вставьте промпт AI-агента и получите работающее приложение с фронтендом, бэкендом и базой данных.
- Безопасность по умолчанию — ACL на уровне строк гарантируют, что каждый пользователь видит только свои собственные задачи.
- PHP-родной SDK — типизированные объекты, async/await, оффлайн-фиксация и Live Queries из коробки.
- REST + GraphQL — обе API автоматически генерируются; нет необходимости писать пользовательские конечные точки.
- Два класса — _User (встроенная аутентификация) и Todo (задачи с заголовком, выполнено, дата выполнения, приоритет, владелец).
Что такое шаблон бэкенда приложения Todo PHP?
Back4app — это бэкенд как услуга (BaaS), идеальный для Todo приложений: управляемый бэкенд, аутентификация, реальное время и SDK для более чем 13 технологий. PHP Шаблон бэкенда Todo приложения — это готовая к производству схема бэкенда, размещенная на Back4app. Она предоставляет вам два класса базы данных (_User и Todo), ACL на основе владения, REST и GraphQL API, а также подсказку AI Agent в один клик — так вы сможете подключить фронтенд PHP и запустить работающее Todo приложение за считанные минуты вместо дней.
Лучше всего для:
Обзор
Todo приложение — это одна из самых распространенных отправных точек для изучения разработки бэкенда. Внутри оно требует регистрации пользователей, CRUD задач, контроля доступа на основе владения и, опционально, синхронизации в реальном времени.
Схема ниже определяет два класса — _User (встроенный) и Todo — соединенные указателем. С помощью Back4app PHP SDK вы можете взаимодействовать с этим бэкендом из вашего приложения — запрашивать, создавать, обновлять и удалять объекты — без написания пользовательского API слоя.
Почему стоит создать ваш PHP Todo бэкенд с Back4app?
Back4app предоставляет готовый бэкенд и типизированный SDK, чтобы вы могли создать ваше Todo приложение без написания REST glue или управления аутентификацией самостоятельно.
- •SDK и безопасность типов: SDK обеспечивает безопасность типов для Todo и User и обрабатывает JSON, так что вам нужно писать меньше шаблонного кода.
- •Асинхронный и необязательный оффлайн: Используйте async/await; поддерживаемые SDK предлагают локальную привязку, чтобы ваш список мог работать в оффлайне и синхронизироваться при возвращении в онлайн.
- •Live Queries: Подписывайтесь на изменения Todo, чтобы интерфейс обновлялся в реальном времени через WebSockets.
Одна и та же схема и API для каждого стека — переключайте клиентов позже, не меняя бэкенд.
Основные преимущества
Готовый к производству бэкенд для Todo, чтобы вы могли быстрее запускать и сосредоточиться на своем приложении.
Запускайте быстрее, без кода бэкенда
REST и GraphQL API и готовая к использованию схема — подключите ваше приложение и вперед.
Безопасно по умолчанию
ACL и разрешения на уровне классов, чтобы пользователи имели доступ только к своим данным.
Обновления в реальном времени
Live Queries через WebSockets для мгновенных обновлений интерфейса.
Встроенная аутентификация
Регистрация пользователей, вход в систему и управление сессиями из коробки — без пользовательского слоя аутентификации.
Работает в оффлайне
Локальное кэширование сохраняет данные доступными в оффлайне и синхронизирует их при повторном подключении.
Развертывание за минуты
Используйте AI Agent для создания и развертывания вашего приложения Todo из этого шаблона.
Готовы попробовать?
Позвольте AI Agent от Back4app создать бэкенд вашего приложения Todo, подключить фронтенд PHP и развернуть — все из одной команды.
Бесплатно для начала — 50 запросов AI Agent в месяц, без необходимости в кредитной карте
Технический стек
Все, что поддерживает этот шаблон приложения Todo, одним взглядом.
ER-диаграмма
Диаграмма «Сущность-Связь» для модели данных приложения PHP Todo.
Класс _User содержит objectId, username, email, password, createdAt и updatedAt. Класс Todo содержит objectId, title, done, dueDate, priority и указатель owner на _User, а также createdAt и updatedAt. Каждый _User владеет нулем или несколькими элементами Todo.
Просмотреть источник диаграммы
erDiagram
_User {
String objectId PK
String username
String email
String password
Date createdAt
Date updatedAt
}
Todo {
String objectId PK
String title
Boolean done
Date dueDate
Number priority
Pointer owner FK
Date createdAt
Date updatedAt
}
_User ||--o{ Todo : "owns"
Поток интеграции
Последовательность Auth-to-CRUD: как ваше PHP приложение взаимодействует с Back4app — вход в систему, затем запрос и создание задач.
Посмотреть источник диаграммы
sequenceDiagram
participant User
participant App as PHP App
participant Back4app as Back4app REST API
User->>App: Login
App->>Back4app: POST /login (username, password)
Back4app-->>App: sessionToken
App-->>User: Logged in
User->>App: Load todos
App->>Back4app: GET /classes/Todo (X-Parse-Session-Token)
Back4app-->>App: results[]
App-->>User: Show list
User->>App: Create todo
App->>Back4app: POST /classes/Todo
Back4app-->>App: objectId, createdAt
App-->>User: Updated listСловарь данных
Полная справка по полям для каждого класса в схеме.
| Поле | Тип | Описание | Обязательно |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | авто |
| title | String | Short description of the task | |
| done | Boolean | Whether the task is completed | — |
| dueDate | Date | Optional deadline for the task | — |
| priority | Number | Priority level (1 = high, 3 = low) | — |
| owner | Pointer<_User> | User who owns this task | — |
| createdAt | Date | Auto-generated creation timestamp | авто |
| updatedAt | Date | Auto-generated last-update timestamp | авто |
8 поля в Todo
Безопасность и разрешения
Как владение, ACL и разрешения на уровне класса защищают данные в этой схеме.
ACL на уровне строк
Каждый Todo получает ACL, связанный с его владельцем. Только создатель может читать, обновлять или удалять свои собственные задачи.
Разрешения на уровне класса
CLP ограничивают, какие роли или пользователи могут создавать, читать, обновлять или удалять объекты на уровне класса — ваша первая линия защиты.
Владение на основе указателей
Указатель владельца связывает каждый Todo с его _User. Триггеры Cloud Code могут автоматически устанавливать владение и применять ACL при сохранении.
Схема (JSON)
Сырая схема JSON — скопируйте и используйте в своем приложении Back4app или импортируйте через API.
{
"classes": [
{
"className": "Todo",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"title": {
"type": "String",
"required": true
},
"done": {
"type": "Boolean",
"required": false,
"defaultValue": false
},
"dueDate": {
"type": "Date",
"required": false
},
"priority": {
"type": "Number",
"required": false,
"defaultValue": 3
},
"owner": {
"type": "Pointer",
"targetClass": "_User",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "_User",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"username": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"password": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}Создать с помощью AI Agent
Используйте AI Agent Back4app для создания реального приложения Todo из этого шаблона: он создаст фронтенд, бэкенд (эту схему, аутентификацию и API) и развернет его — без ручной настройки. Подсказка ниже описывает этот стек Todo, чтобы Агент мог сгенерировать готовое к производству приложение за один раз.
Создайте приложение Todo на Back4app с этой точной схемой и поведением. Схема: 1. _User (используйте встроенный Back4app): имя пользователя (String, обязательно), электронная почта (String, обязательно), пароль (String, обязательно); objectId, createdAt, updatedAt (системные). 2. Todo: заголовок (String, обязательно), выполнено (Boolean, по умолчанию: false), срок выполнения (Date, необязательно), приоритет (Number, по умолчанию: 3; 1=высокий, 2=средний, 3=низкий), владелец (Указатель на _User; устанавливается на текущего пользователя при создании); objectId, createdAt, updatedAt (системные). Безопасность: - Установите ACL для каждого Todo, чтобы только владелец имел доступ на чтение и запись. Без публичного доступа на чтение/запись. - При создании установите Todo.owner на текущего пользователя (например, через Cloud Code beforeSave или на стороне клиента). - Используйте разрешения на уровне класса, чтобы только аутентифицированные пользователи могли создавать/читать/обновлять/удалять Todo. Аутентификация: - Регистрация (имя пользователя, электронная почта, пароль) и вход; поддержка выхода/сессии. - После входа приложение должно показывать и разрешать CRUD только для Todo текущего пользователя. Поведение: - Полный CRUD для Todo: создать, список (только владельца), получить один, обновить (переключить выполнено, редактировать заголовок, срок выполнения, приоритет), удалить. - Список Todo с сортировкой (например, по приоритету, затем по сроку выполнения или созданию). Приоритет по умолчанию для новых Todo: 3 (низкий). Доставка: - Создайте приложение Back4app с вышеуказанной схемой, ACL и любым необходимым Cloud Code (например, beforeSave на Todo для установки владельца). - Сгенерируйте фронтенд и подключите его к этому бэкенду; разверните, чтобы приложение работало от начала до конца.
Нажмите кнопку ниже, чтобы открыть Агент с предзаполненной подсказкой этого шаблона.
API Playground
Попробуйте REST и GraphQL конечные точки для схемы Todo. Ответы из приведенных выше примерных данных — учетная запись Back4app не требуется.
Использует ту же схему Todo, что и этот шаблон.
Пошаговая интеграция PHP
Подключитесь к вашему Back4app бэкенду из PHP приложения, используя Back4app PHP SDK.
Шаг 1: Установите Back4app PHP SDK
Добавьте Back4app SDK для вашего стека (например, npm, pubspec или менеджер пакетов).
PHPcomposer require guzzlehttp/guzzleШаг 2: Инициализируйте Back4app в вашем приложении
Инициализируйте Back4app SDK при запуске приложения с вашим App ID и URL сервера.
PHP// Initialize (e.g. bootstrap or config) $baseUrl = 'https://parseapi.back4app.com'; $appId = getenv('PARSE_APP_ID'); $restKey = getenv('PARSE_REST_KEY'); $sessionToken = null; // set after loginШаг 3: Запросите все задачи
Используйте SDK для получения всех объектов Todo, отсортированных по приоритету.
PHP// GET /classes/Todo function getTodos(string $baseUrl, string $appId, string $restKey, ?string $sessionToken): array { $client = new \GuzzleHttp\Client(); $headers = [ 'X-Parse-Application-Id' => $appId, 'X-Parse-REST-API-Key' => $restKey, 'Content-Type' => 'application/json', ]; if ($sessionToken) $headers['X-Parse-Session-Token'] = $sessionToken; $res = $client->get($baseUrl . '/classes/Todo?order=priority', ['headers' => $headers]); $body = json_decode($res->getBody()->getContents(), true); return $body['results'] ?? []; }Шаг 4: Создайте задачу
Создайте новую задачу Todo с заголовком, статусом выполнения и приоритетом, затем сохраните.
PHP// POST /classes/Todo function createTodo(string $baseUrl, string $appId, string $restKey, string $sessionToken, string $title, int $priority = 3): array { $client = new \GuzzleHttp\Client(); $res = $client->post($baseUrl . '/classes/Todo', [ 'headers' => [ 'X-Parse-Application-Id' => $appId, 'X-Parse-REST-API-Key' => $restKey, 'X-Parse-Session-Token' => $sessionToken, 'Content-Type' => 'application/json', ], 'json' => ['title' => $title, 'done' => false, 'priority' => $priority], ]); return json_decode($res->getBody()->getContents(), true); }Шаг 5: Обновление и удаление задач
Обновите поля и сохраните, или удалите объект.
PHP// PUT /classes/Todo/{objectId} — mark done // DELETE /classes/Todo/{objectId} function markDone(string $baseUrl, string $appId, string $restKey, string $sessionToken, string $objectId): void { $client = new \GuzzleHttp\Client(); $client->put($baseUrl . '/classes/Todo/' . $objectId, [ 'headers' => [ 'X-Parse-Application-Id' => $appId, 'X-Parse-REST-API-Key' => $restKey, 'X-Parse-Session-Token' => $sessionToken, 'Content-Type' => 'application/json', ], 'json' => ['done' => true], ]); }
Часто задаваемые вопросы
Распространенные вопросы о шаблоне бэкенда приложения Todo.
Готовы создать свое приложение Todo?
Начните свой проект PHP за считанные минуты. Кредитная карта не требуется.