Шаблон PHP

Шаблон бэкенда приложения Todo
PHP — Схема, API и руководство по AI

Готовая к производству PHP Todo схема бэкенда и Стартовый комплект на Back4app: диаграмма ER, словарь данных, JSON-схема, API-площадка, примеры кода и однонажатийный AI Agent для развертывания за считанные минуты.

Ключевые выводы

На этой странице вы получите готовую к производству схему, одноразовый AI-промпт и пошаговый PHP код — так вы сможете запустить приложение Todo без создания бэкенда.

  1. Развертывание за минутывставьте промпт AI-агента и получите работающее приложение с фронтендом, бэкендом и базой данных.
  2. Безопасность по умолчаниюACL на уровне строк гарантируют, что каждый пользователь видит только свои собственные задачи.
  3. PHP-родной SDKтипизированные объекты, async/await, оффлайн-фиксация и Live Queries из коробки.
  4. REST + GraphQLобе API автоматически генерируются; нет необходимости писать пользовательские конечные точки.
  5. Два класса_User (встроенная аутентификация) и Todo (задачи с заголовком, выполнено, дата выполнения, приоритет, владелец).

Что такое шаблон бэкенда приложения Todo PHP?

Back4app — это бэкенд как услуга (BaaS), идеальный для Todo приложений: управляемый бэкенд, аутентификация, реальное время и SDK для более чем 13 технологий. PHP Шаблон бэкенда Todo приложения — это готовая к производству схема бэкенда, размещенная на Back4app. Она предоставляет вам два класса базы данных (_User и Todo), ACL на основе владения, REST и GraphQL API, а также подсказку AI Agent в один клик — так вы сможете подключить фронтенд PHP и запустить работающее Todo приложение за считанные минуты вместо дней.

Лучше всего для:

Разработчиков приложенийБыстрого прототипированияХакатоновИзучения разработки бэкендаЗапуска MVPКоманд, выбирающих BaaS вместо кастомного бэкенда

Обзор

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, одним взглядом.

Фронтенд
PHP
Бэкенд
__БРЕНД0__
База данных
__БРЕНД0__
Аутентификация
Аутентификация и контроль доступа
API
REST и __БРЕНД0__
Развертывание
AI Агент / Панель управления

ER-диаграмма

Диаграмма «Сущность-Связь» для модели данных приложения PHP Todo.

Просмотреть источник диаграммы
Mermaid
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 — вход в систему, затем запрос и создание задач.

Посмотреть источник диаграммы
Mermaid
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

Словарь данных

Полная справка по полям для каждого класса в схеме.

ПолеТипОписаниеОбязательно
objectIdStringAuto-generated unique identifierавто
titleStringShort description of the task
doneBooleanWhether the task is completed
dueDateDateOptional deadline for the task
priorityNumberPriority level (1 = high, 3 = low)
ownerPointer<_User>User who owns this task
createdAtDateAuto-generated creation timestampавто
updatedAtDateAuto-generated last-update timestampавто

8 поля в Todo

Безопасность и разрешения

Как владение, ACL и разрешения на уровне класса защищают данные в этой схеме.

ACL на уровне строк

Каждый Todo получает ACL, связанный с его владельцем. Только создатель может читать, обновлять или удалять свои собственные задачи.

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

CLP ограничивают, какие роли или пользователи могут создавать, читать, обновлять или удалять объекты на уровне класса — ваша первая линия защиты.

Владение на основе указателей

Указатель владельца связывает каждый Todo с его _User. Триггеры Cloud Code могут автоматически устанавливать владение и применять ACL при сохранении.

Схема (JSON)

Сырая схема JSON — скопируйте и используйте в своем приложении Back4app или импортируйте через API.

JSON
{
  "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, чтобы Агент мог сгенерировать готовое к производству приложение за один раз.

AI Agent Back4app
Готовы к созданию
Создайте приложение 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 для установки владельца).
- Сгенерируйте фронтенд и подключите его к этому бэкенду; разверните, чтобы приложение работало от начала до конца.

Нажмите кнопку ниже, чтобы открыть Агент с предзаполненной подсказкой этого шаблона.

Развернуть за минуты50 бесплатных запросов / месяцКредитная карта не требуется

API Playground

Попробуйте REST и GraphQL конечные точки для схемы Todo. Ответы из приведенных выше примерных данных — учетная запись Back4app не требуется.

Загрузка песочницы…

Использует ту же схему Todo, что и этот шаблон.

Пошаговая интеграция PHP

Подключитесь к вашему Back4app бэкенду из PHP приложения, используя Back4app PHP SDK.

  1. Шаг 1: Установите Back4app PHP SDK

    Добавьте Back4app SDK для вашего стека (например, npm, pubspec или менеджер пакетов).

    PHP
    composer require guzzlehttp/guzzle
  2. Шаг 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. Шаг 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. Шаг 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. Шаг 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.

Что такое Back4app?
Почему использовать Back4app для приложения Todo на PHP?
Что такое класс Todo при использовании PHP с Back4app?
Как мне передать токен сессии из PHP?
Могу ли я добавить поля в Todo из моего приложения PHP?
Как мне запросить todos по приоритету в PHP?
Доступна ли синхронизация в реальном времени для PHP?
Как добавить категории или теги в PHP?

Доверяют разработчики по всему миру

Присоединяйтесь к сообществу, строящему будущее приложений

G2 Users Love Us Badge

Готовы создать свое приложение Todo?

Начните свой проект PHP за считанные минуты. Кредитная карта не требуется.

Стройте с ИИ-агентом