Quickstarters
Feature Overview
如何为PHP构建后端?
37 分
介绍 在本教程中,您将学习 如何为 php 构建后端 ,使用 back4app 为服务器端的动态 web 应用程序提供支持。 我们将重点集成 back4app 的关键服务,例如数据库管理、云代码函数、rest 和 graphql api、用户身份验证以及实时查询。 通过遵循这些步骤,您将创建一个安全、可扩展且强大的后端,可以在您的 php 项目中使用。 我们还将探讨为什么与从头构建一切相比,back4app 加速了后端开发,这样您可以节省时间和精力。 您将发现如何实现高级安全性、使用云作业调度任务,以及通过 webhook 连接外部集成,同时依赖于 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 熟悉 web 应用程序基础知识 理解 http、服务器端脚本和基本数据库概念将会有所帮助。 在深入以下步骤之前,请确保您具备这些先决条件。设置好您的 back4app 项目和 php 环境将使您更容易跟随。 步骤 1 – 设置 back4app 项目 创建新项目 在 back4app 上构建服务器端后端的第一步是创建一个新项目。如果您尚未这样做,请按照以下步骤操作: 登录到您的 back4app 账户 。 点击您的 back4app 仪表板中的“新应用”按钮 。 给您的应用命名 (例如,“php backend tutorial”)。 创建后,您的新 back4app 项目将出现在仪表板中。该项目将成为即将进行的配置步骤的基础。 通过 rest api 连接到 back4app 由于我们使用 php 而没有 parse 特定的 sdk,我们将依赖 back4app 的 rest 和 graphql api 进行通信。您需要从 back4app 仪表板获取以下凭据: 应用程序 id rest api 密钥 parse 服务器 url (通常是 https //parseapi back4app com ) 您可以通过导航到应用的 应用设置 或 安全性与密钥 部分来找到这些信息。 在 php 中,您可以使用 curl 或其他库执行 http 请求。以下是向 back4app 发送 post 请求的简短示例: $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 项目准备好后,是时候构建您的数据库了。数据模型定义了您的 web 应用程序数据的组织方式。例如,您可以在类中存储任务或博客文章。 转到您的 back4app 仪表板中的 “数据库” 部分 。 创建一个新类 (例如,“待办事项”)并添加字段,例如 标题 (字符串)和 已完成 (布尔值)。 back4app 允许您为各种数据类型创建列,包括 字符串 , 数字 , 布尔值 , 指针 , 关系 , 文件 , 以及其他类型。您还可以在第一次从 php 脚本保存对象时让模式自动创建。 使用 ai 代理创建数据模型 back4app的ai代理可以自动化数据模型创建: 打开ai代理 从仪表板 提供描述 比如“请在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 } } } } 使用实时查询(可选) 如果您需要在您的web应用程序中进行实时更新,请考虑 实时查询 在您的back4app仪表板中启用实时查询,然后使用php环境(或单独的客户端)中的websocket方法订阅更改。虽然在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 部署 您可以通过 back4app cli https //www back4app com/docs/local development/parse cli 或 back4app 控制面板部署云代码。 npm 模块 如果您需要额外的库,请使用 npm 安装它们并在您的云代码中导入。这对于高级服务器端集成非常有帮助。 步骤 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 – 集成 webhooks 定义 webhooks 让您在事件发生时向其他服务发送 http 请求,例如在您的 back4app 类中创建新记录。这对于外部集成非常有用,包括支付平台、电子邮件营销工具或 slack 通知。 配置 打开 webhooks 面板在您的 back4app 仪表板 > 更多 > webhooks 添加一个新的 webhook ,并提供您希望发送事件数据的端点 url。 选择触发器 (例如,对象创建、更新或删除)。 您还可以在 cloud code 触发器中定义 webhooks,使用 node js 模块如 axios 发起 http 请求。 步骤 10 – 探索 back4app 管理面板 “ back4app 管理应用 ”是一个以模型为中心的界面,允许非技术用户或管理员在不编写代码的情况下管理数据。它提供比标准 parse 仪表板更直观的数据处理体验。 在哪里找到它 通过访问 应用仪表板 > 更多 > 管理应用 来启用管理应用。 点击 “启用管理应用” 并配置您的管理员凭据。 选择一个子域名 以访问管理应用。 使用您新创建的管理员凭据登录,以开始管理数据库记录、用户帐户、角色等。 结论 在本教程中,您学习了如何为您的 php web 应用程序构建服务器端后端,使用 back4app。您设置了一个安全的数据库,利用实时功能,在云代码中定义了自定义逻辑,并探索了用户身份验证、文件存储和定时任务。您还看到 webhook 和管理面板如何与外部服务集成并简化数据管理。 有了这个基础,您拥有一个灵活且可扩展的后端,可以根据需要为您的下一个 php 项目进行扩展。继续探索高级技术、自定义角色或第三方 api,使您的应用程序更强大和动态。 下一步 完善您的生产就绪 php 应用程序 ,通过添加缓存、负载均衡或高级安全性。 添加基于角色的访问控制 或独特的身份验证流程,如果您的用户群需要的话。 查阅官方 back4app 文档 以了解更多关于性能调优、日志和分析的信息。 尝试其他教程 并使用在这里学到的技术构建现实世界的解决方案,从电子商务到社交平台。