您的位置:

对php接口的思考(对php接口的思考与实践)

本文目录一览:

php中的接口是指什么?

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

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

扩展资料

PHP接口(interface)的特点 :

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

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

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

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

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

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

php 接口大概要怎么写

PHP 接口

接口

使用接口(interface),你可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。

我们可以通过interface来定义一个接口,就像定义一个标准的类一样,但其中定义所有的方法都是空的。

接口中定义的所有方法都必须是public,这是接口的特性。

实现

要实现一个接口,可以使用implements操作符。类中必须实现接口中定义的所有方法,否则 会报一个fatal错误。如果要实现多个接口,可以用逗号来分隔多个接口的名称。

Note:

实现多个接口时,接口中的方法不能有重名。

Note:

接口也可以继承,通过使用extends操作符。

常量

接口中也可以定义常量。接口常量和类常量的使用完全相同。 它们都是定值,不能被子类或子接口修改。

范例

Example #1 接口代码示例

?php

// 声明一个'iTemplate'接口

interface iTemplate

{

public function setVariable($name, $var);

public function getHtml($template);

}

// 实现接口

// 下面的写法是正确的

class Template implements iTemplate

{

private $vars = array();

public function setVariable($name, $var)

{

$this-vars[$name] = $var;

}

public function getHtml($template)

{

foreach($this-vars as $name = $value) {

$template = str_replace('{' . $name . '}', $value, $template);

}

return $template;

}

}

// 下面的写法是错误的,会报错:

// Fatal error: Class BadTemplate contains 1 abstract methods

// and must therefore be declared abstract (iTemplate::getHtml)

class BadTemplate implements iTemplate

{

private $vars = array();

public function setVariable($name, $var)

{

$this-vars[$name] = $var;

}

}

?

Example #2 Extendable Interfaces

?php

interface a

{

public function foo();

}

interface b extends a

{

public function baz(Baz $baz);

}

// 正确写法

class c implements b

{

public function foo()

{

}

public function baz(Baz $baz)

{

}

}

// 错误写法会导致一个fatal error

class d implements b

{

public function foo()

{

}

public function baz(Foo $foo)

{

}

}

?

Example #3 多个接口间的继承

?php

interface a

{

public function foo();

}

interface b

{

public function bar();

}

interface c extends a, b

{

public function baz();

}

class d implements c

{

public function foo()

{

}

public function bar()

{

}

public function baz()

{

}

}

?

Example #4 使用接口常量

?php

interface a

{

const b = 'Interface constant';

}

// 输出接口常量

echo a::b;

// 错误写法,因为常量的值不能被修改。接口常量的概念和类常量是一样的。

class b implements a

{

const b = 'Class constant';

}

?

你也可以看看instanceof关键字的文档。

php开发app接口需要注意什么

1.制定规范

开发前一定要定好一个规范,比如要定好数据返回的通用参数和格式。关于数据格式,用的比较多的有xml和json,我建议用json,因为json比xml的好处更多。

2.精简的返回数据

接口数据因符合需要什么返回什么的原则,比如要查询某个用户的余额和注册时间,网页里面的做法可能是select * from user where uid=1,但是接口一定要select balance,regtime from user where uid=1。因为接口返回数据是要有开销的,要流量的,能少返回数据就尽量少返回,这样可以大大的提高性能。

3.数据类型要严格

要注意数据的类型,整数类型的数据一定要转为int,因为app客户端开发的java、object-c语言对数据类型比较严格,类型不对会照成app闪退。

4.要写接口文档

一定要写好接口文档,并按照模块写,而且还要书写规范,最好的格式是:

接口请求地址;请求参数(包括参数名、类型、是否必填);测试参数举例;返回参数(参数名,并注明每个参数的含义)。

这样哪怕以后项目很大,以不会照成维护困难的问题。

5.保证代码正确性

要验证保证代码正确无误,而且生成环境中要屏蔽掉错误,避免头部有额外的输出,照成返回的json等数据解析失败而导致app闪退等。

6.要优化代码的性能

app要求响应迅速,这样才能给用户比较好的体验感。所以移动接口端在处理业务逻辑的时候,要避免不要执行太复杂的sql语句,或者含有大量的循环,能做成缓存的尽量做缓存,比如将首页的热点模块信息可以存到redis缓存中。在不考虑网速的情况下,比较理想的接口响应时间应该是200毫秒以内。

7.不要随意更改旧接口

app不像网页,app一旦发布,有人使用之后,接口就不要乱修改了。以后升级也是,修改要在保证接口原有结构之上进行额外的扩展,否则会导致调用旧版接口的app出现bug。

8. 注意接口的安全

安全高于一切,必须要保证接口的安全。电话号码等敏感信息在传输的过程中一定要加密,否则可能会被别人抓包到。拿取用户信息的接口一定要验证权限,以防止接口被恶意调用,泄密用户信息,甚至篡改信息。

php接口有什么作用

首先应该明白接口是什么含义,接口是对外开放的,调用接口然后重写其中的方法,如果你不要使用接口里面的方法,那么接口就没有意义了,这样也是为了整体代码的控制性。

本质上php接口其实就是一种规范,如果是多人开发的项目,这个接口可能就起到比较重要的作用了