php中的接口是指什么?

Python013

php中的接口是指什么?,第1张

接口interface是一个规定,给人继承用的东西,有点像抽象类。

接口定义了实现某种服务的一般规范,声明了所需的函数和常量,但不指定如何实现。之所以不给出实现的细节,是因为不同的实体可能需要用不同的方式来实现公共的方法定义。关键是要建立必须实现的一组一般原则,只有满足了这些原则才能说实现了这个接口

扩展资料

PHP接口(interface)的特点 :

1、接口的方法必须是公开的。

2、接口的方法默认是抽象的,所以不在方法名前面加abstract。

3、接口可以定义常量,但不能定义成员属性,常量的定义和用法和类中常量一样。

4、类可以实现多个接口(相当于把多个功能集于一身,如手机实现了小灵通、MP3、MP4的功能)

5、接口也可以继承接口。

PHP同大多数的面向对象语言一样,并不支持多重继承。如果需要实现多重继承功能,在PHP中,可以通过接口,它是PHP解决多重继承问题的方法,在php5.4版本之后有个类的新特性trait,有兴趣的可以百度下。

JSON&XML

XML: 是一种标记语言,设计的宗旨是传输数据

JSON: 轻量级的数据交换格式

APP接口主要是用JSON输出格式

APP接口输出格式三要素:

1. code::错误码

2. msg:错误码对应的描述

3. data:接口返回的数据

谁有权限调用APP接口,客户端需要带着凭证来调用APP接口

JWT的原理:

服务端认证之后,生成一个JSON对象,返回给用户。后续客户端所有请求都会带上这个JSON对象。服务端依靠这个JSON对象来认定用户身份。

组成: Header, Payload, Signature

1. Header

说一下我是什么

header通常包含了两部分:类型和加密算法

{

    "alg": "HS256",

    "typ": "JWT"

}

header需要经过Base64Url编码后作为IWT的第一部分。

2. Payload

payload包含了claim, 三种类型reserved, public, private

reserved这些claim是JWT预先定义的,不强制使用,常用的有:

1). iss: 签发者

2). exp: 过期的时间戳

3). sub: 面向的用户

4). aud: 接收方

5). iat: 签发时间

{

    "sub":  "1234567890",

    "name":  "John Doe",

    "admin": true

}

payload需要经过Base64Url编码后作为JWT的第二部分。

3. Signature

创建签名使用编码后的header和payload以及一个密匙,使用header中指定的签名算法进行签名

HMACSHA256(

base64UrlEncode(header) + "." +

base64UrlEncode(payload),

secret

)

签名是在服务端进行的,客户端并不知道,所以是安全的。