phalapi 开发流程
文章目录
- 一、HELLO WORLD
- 二、如何请求接口服务
- 三、接口响应与在线调试
- 四、简单查询例子
- 数据库连接如何指定表名
基本配置
上传服务器以后配置根目录文件夹为public即可访问
./src/
└── app├── Api # 放置接口源代码,相当于控制器层├── Common # 公共代码目录,放置工具等├── Domain # 领域业务层,负责业务逻辑和处理├── functions.php└── Model # 数据源层,负责数据持久化存储及操作
可以尝试在宝塔里头直接编写代码
一、HELLO WORLD
vscode中安装插件
php server,php debug,php intellisense,PHP DocBlocker
/docs.php
可以访问到开发接口的接口文档及框架
在默认的接口服务类当中可以查询接口文档以及测试接口响应
注意:
!!!!!文件名要和类名一致
默认所在命名空间必须为App\Api
具体实现的接口类必须是PhalApi\Api
的子类
定义接口方法,必须为public访问权限
接口参数,放置在getRules()函数方法中
Hello.php
<?php
namespace App\Api;use PhalApi\Api;/*** 第一个接口*/class Hello extends Api
{public function world(){return array('content' => 'Hello ');}
}
在其中可以进行基本参数查看 测试接口
<?phpnamespace App\Api;use PhalApi\Api;/*** 第一个接口*/class Hello extends Api
{public function getRules(){return array('world' => array('username' => array('name' => 'username', 'desc' => 'B站账号名称')));}public function world(){return array('content' => 'Hello ' . $this->username);}
}
请求参数输入一个用户名username 打印数组hello+输入用户名
username的备注是:B站账号名称
二、如何请求接口服务
1.Namespace表示命名空间前缀,Class为接口服务类名,Action为接口服务方法名
http://121.196.156.3:3001/?s=Hello.World == http://121.196.156.3:3001/?s=App.Hello.World
?s=Class.Action == ?s=Namespace.Class.Action
如果Api内有多级目录,则Class类名及目录之间使用下划线连接,并且类名中不能出现下划线
Namespace/Api/Folder/Class::Action() == ?s=Namespace.Folder_Class.Action
开启路由匹配
nginx加以下代码:
# 开启URI路由匹配location / {try_files $uri $uri/ $uri/index.php;}if (!-e $request_filename) {rewrite ^/(.*)$ /index.php last;}
开启路由匹配以后即可将.代替成/
三、接口响应与在线调试
响应结构:data-ret-msg
ret字段是返回状态码,200表示成功;data字段是项目提供的业务数据,由接口开发人员定义;msg是异常情况下的错误提示信息
- data:业务数据,推荐object类型,可以返回任意类型数据给客户端
- ret:状态码,整型,200表示成功,4xx表示客户端非法请求,5xx表示服务器错误,其他数值可自定义(调试模式下可能是字符串类型)
- msg:提示信息,字符串
四、简单查询例子
Model层
<?php
namespace App\Model;use PhalApi\Model\NotORMModel as NotORM;class User extends NotORM {public function getUserInfo($id) {return $this->getORM()->where('id', $id)->fetchOne();}
}
domain层
<?php
namespace App\Domain;use App\Model\User as UserModel;class User {public function getUserInfo($userId) {$model = new UserModel();return $model->getUserInfo($userId);}
}
api层
namespace App\Api;use PhalApi\Api;
use App\Domain\User as UserDoamin;
class User extends Api
{/*** 获取用户信息* @desc 根据用户id获取用户信息,作为演示*/public function getUserInfo(){$domain = new UserDoamin(); $info = $domain->getUserInfo(1);return array('info' => $info);}
}
可以获得返回信息
数据库连接如何指定表名
上面的App\Model\User类,自动匹配的表名为:user,加上配置前缀“tbl_”,完整的表名是:tbl_user。
默认表名的自动匹配规则是:取“\Model\”后面部分的字符全部转小写,并且在转化后会加上配置的表前缀。
phalapi 开发流程相关推荐
- 简述Web程序开发流程
总体开发流程 分析需求, 列出功能清单或写需求说明书. 设计程序功能, 写功能规格书和技术规格书. 进入开发与测试的迭代. 调试和性能等专项测试. 部署上线 运维 前端开发流程 根据功能规格绘制页面草 ...
- 移动端开发者眼中的前端开发流程变迁与前后端分离
写在最开始 这是一篇面向移动端开发者的科普性文章,从前端开发的最初流程开始,结合示范代码,讨论开发流程的演变过程,希望能覆盖一部分前端开发技术栈,从而对前端开发的相关概念形成初步的认识. 本文会提供一 ...
- node.js的开发流程_Node.js子流程:您需要了解的一切
node.js的开发流程 by Samer Buna 通过Samer Buna Node.js子流程:您需要了解的一切 (Node.js Child Processes: Everything you ...
- 软件开发流程包含哪些内容
2019独角兽企业重金招聘Python工程师标准>>> 能否开发出一个好的软件,关键是看软件开发前期所做的工作,重点是这个软件有没有一个好的 软件开发流程,因为一个好的软件开发流程关 ...
- TCP 网络应用程序开发流程
TCP 网络应用程序开发流程 1. TCP 网络应用程序开发流程的介绍 TCP 网络应用程序开发分为: TCP 客户端程序开发 TCP 服务端程序开发 说明: 客户端程序是指运行在用户设备上的程序 , ...
- web开发流程 - 网上商城示例
一.需求确定 1:通过各种手段确定系统的功能与性能 1)功能:注册.浏览.搜索... 2)性能:可同时支持n个并发访问,并且响应时间不低于m毫秒... 3)手段:头脑风暴(brain ...
- Leangoo阶段式硬件产品开发流程
一.概述 本场景描述的是基于阶段式硬件研发流程以及在Leangoo中如何实现. 二.硬件产品开发流程 下图所示的是一个硬件产品开发大体上所需要经历的全部流程: 1)立项 在立项之前首先需要确定产品定位 ...
- 究竟什么样的开发流程是规范的?
概述 有读者反馈,读了文章 一线技术管理者究竟在管什么事?收获满满,但还有点不过瘾,还想了解更细的东西... 这篇文章分享开发流程规范,目的是提高产品质量,优化开发流程,供大家参考. 规范是死的,人是 ...
- 敏捷开发流程的8个步骤
一.敏捷开发流程的8个步骤包括: 1.目标制定,目标对齐:通过市场调研.业务思路.风险评估制定公司规划和目标,根据这一目标产生所有部门的目标并实现对齐: 2.产品规划:产品研发部门根据目标制定产品关键 ...
- 如何让Git适应敏捷开发流程?
一旦涉及版本控制系统,Git实际上代表敏捷开发的水平.Git作为一款强大的开源系统,有较强的灵活性,可以按需匹配任何开发团队的工作流程.而这种分布式相比较集中式来说,自然赋予系统更好的性能特征,且允许 ...
最新文章
- Maven自动FTP远程部署
- python lambda ,map详解
- 如何使用React动态添加/删除class来改变样式
- Java数据结构类如何使用_Matlab如何使用Java的数据结构类型
- java 快排非递归_C++ 中快排的递归和非递归实现
- 【转:SAP学习篇】Fiori 的基本架构
- Shell之/bin/bash脚本的基础实战
- 下面使用计算机动画制作的,华师17年3月课程考试《计算机动画制作》作业考核试题...
- 007_Web to lead
- Linux 中mysql常用命令
- 【NOI2022】PV「什么是信息学精神?」
- 网络管理员考试案例梳理、真题透解与强化训练
- [linux]tcpdump抓包
- python 图形库有哪些_Python基本图形绘制库——turtle
- 获取华为云课程内嵌的课件pdf文件
- ϵ-greedy Policies
- 泊松过程1 | 定义与基本性质
- 上月和本月对比叫什么_统计学中与上个月比叫什么
- 如何录制自己手机视频
- [苹果解密]创新是伟大公司诞生的源泉--Apple再度成为美国最大上市公司
热门文章
- 梦幻西游手游服务器维护公告,《梦幻西游手游》10月5日维护公告 部分区服合并...
- Android判断首次安装
- 关于网络小说均订的那些事:有些已成历史,有些在不断打破纪录
- 学而思网校怎么查看回放 学而思网校查看回放教程
- ANSA二次开发实战——车身弯扭刚度计算文件自动生成(1)
- 解决讯飞语音唤醒参数无效(错误码:10106)的问题
- 计算机涨跌公式,计算机今日涨跌公式,怎么算 股票的涨跌停板 公式是怎么的?...
- JavaScript 实现简单的移动和缓动的效果
- 计算机表格中减法公式,excel表格减法公式
- 电子计算机按用途分类包括,计算机的分类试题解析