# veryserver **Repository Path**: hjkl1/veryserver ## Basic Information - **Project Name**: veryserver - **Description**: 基本功能 PHP API - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-05-26 - **Last Updated**: 2023-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 开始 方式一 > 使用 git 拉去代码 ```shell git clone https://gitee.com/hyperillusion/veryserver.git ``` 方式二 > 通过连接复制到浏览器下载 ``` https://gitee.com/hyperillusion/veryserver/repository/archive/master.zip ``` ## 配置 - 进入 backup 目录 - 选择 nginx 或者 apache 配置 - 将 veryserver.conf 复制到虚拟主机的目录下 (根据自己集成环境情况下) - 打开 `C:\Windows\System32\drivers\etc` 下的 `hosts` 文件 (需要 admin 权限) - 新增 `127.0.0.1 veryserver` 本地域名 - 重新加载 nginx 或者 apache (或者重启服务) ## 数据库 在 `lib/database/database.php` 中更改 mysql 数据库配置 ``` php // ... private static $config = [ "driver" => "mysql", "host" => "127.0.0.1", "username" => "root", "password" => "", "database" => "verychina", ]; // ... ``` 需要创建可能的数据表 ## How to 开发业务 ### 创建处理函数 - 在 `handlers` 目录下创建 `user` 模块目录 `handlers/user` - 在 `user` 目录下创建处理函数 `handlers/user/userListHandler.php` - 编写 userListHandler.php ```php // 首字母大写的驼峰式规范 function UserListHandler() { // ... } ``` - 补充 `UserListHandler` 函数的形式参数 ```php function UserListHandler(HttpContext $httpCtx, ServiceContext $svc) { // ... } ``` userListHandler 代码示例: ```php function UserListHandler(HttpContext $httpCtx, ServiceContext $svc) { // 查询 $stat = $svc->GetDB()->query("😍LECT xxx FROM xxx WHERE xxx"); // 获取 $users = $stat->fetch(PDO::FETCH_ASSOC); // 响应 $httpCtx->Reply(200, "ok", $users); return; } ``` - `$svc->GetDB()` 可以获取数据库连接实例 - `$httpCtx->Get("key")` 可以获取 URL 参数, 如 `http://veryserver/api/user?id=1`, `["id" => 1]` - `$httpCtx->Reply(...)` 可以返回 API Json 数据, 如 `{"code": xxx, message: "xxx", "data": "xxx"}` - `$httpCtx` 更多方法详情看 ServiceContext 的实现 ### 配置路由 在 `handlers` 目录下的 `routes.php` 文件中 ```php function RegisterRouters() { $router = new Router(dirname(__FILE__)); $router->AddRoute("GET", "order/list", "order/orderListHandler", "OrderListHandler"); $router->AddRoute("POST", "user", "user/createUserHandler", "CreateUserHandler"); $router->AddRoute("GET", "user/list", "user/userListHandler", "UserListHandler"); // 在此处创建新路由 return $router; } ``` - 使用 ```$router->AddRoute``` 创建路由 - 参数一: 请求方式, 如 `GET`, `POST`, `PUT` 等等... - 参数二: 访问路径, 如 `user/list`, 请求时访问 `http://veryserver/api/user/list` - 参数三: 处理函数的目录路径 - 参数四: 处理函数的函数名