用途:在服务端 PHP 应用(含 Laravel、Symfony 等 SSR 框架)中使用 Appwrite PHP SDK。安装:composer require appwrite/appwrite。
主要能力:
- 客户端初始化:用 setEndpoint、setProject、setKey 配置。
- 用户管理:Users 服务创建、列出、获取、删除用户。
- 数据库:新代码应使用 TablesDB,而非已弃用的 Databases;createDatabase、createTable、createRow、listRows、getRow、updateRow、deleteRow 等。字符串列类型有 varchar(16383 字符,长度 ≤768 可全索引,行内存储并计入 64KB 行限制)、text、mediumtext、longtext(均前缀索引、行外存储);旧 string 类型已弃用。
- 查询:Query 提供 equal、notEqual、lessThan、between、isNull、startsWith、contains、search(全文检索需索引)、orderAsc/orderDesc、limit(默认25,最大100)、offset、cursorAfter/cursorBefore、select、or、and 等。
- 文件存储:Storage 的 createFile、listFiles、deleteFile;InputFile::withPath、InputFile::withData。
- 团队:Teams 创建、列出、邀请成员、更新角色、删除;配合 Role::team。
- 函数:Functions 执行与列出执行记录;PHP 运行时入口 src/main.php 返回 function($context)。
- SSR 认证:需管理员客户端(API key,可复用)与会话客户端(每请求创建,用 setSession)。支持邮箱密码登录 createEmailPasswordSession、OAuth2 流程;Cookie 名必须为 a_session_<PROJECT_ID>,并设置 httpOnly、secure、sameSite:'strict';可用 setForwardedUserAgent(资料未完整给出该方法用法)。
- 错误处理:捕获 AppwriteException,读取 getMessage、getCode、getType、getResponse;常见 401/403/404/409/429。
- 权限:用 Permission 与 Role 生成权限字符串;未显式设置权限时用户无法访问;Role::any() 配合写权限会允许未认证访客修改,敏感数据公开可读是常见错误。
限制与注意:资料未说明定价、额度与平台兼容细节;文中示例 <REGION>、[PROJECT_ID] 等占位符需替换。