【PHP】Yii2团队基于接口(interface)开发方式最佳实践

前言

貌似很多公司都转向了使用Yii2做项目开发~

当团队开发人员过多的时候,对接口的定义就成了困难,再说,命名本来就是个玄学的东西。

之前早就听说过面向接口开发,这几天就试了下,感觉还不错,分享出来,一起进步。

最佳实践

单独存放的文件夹

我把接口文件放在项目中的custominterface中,再和相应控制器所在文件夹进行对应存放,保证项目的目录的存放合理

interface


namespace app\custominterface\v2;
/**
 * Created by PhpStorm.
 * 尝试进行面向接口编程
 * User: yu
 * Date: 16/3/18
 * Time: 10:42
 */


interface LinksInterface {

    /**
     * 列出这个订单下的全部链接
     * @return mixed
     */
    public function actionList();

    /**
     * 添加一个链接
     * @return mixed
     */
    public function actionAdd();

    /**
     * 审核
     * @return mixed
     */
    public function actionCheck();

    /**
     * 删除自己的链接
     * @return mixed
     */
    public function actionDel();

    /**
     * 这是一个测试的例子
     * @return mixed
     */
    public function actionTest();

}

通过接口定义方法名的方式,提高团队开发效率。

implements

class LinkController extends Controller implements LinksInterface{

注意的是,如果在LinkController里没有对于的function,就会报错。

我用的IDE是PHPStrom,当implements了之后,会提示错误。

【PHP】Yii2团队基于接口(interface)开发方式最佳实践_第1张图片

点击之后,会自动补全interface内的function,还有对应的注释。

完整的class




namespace app\patch\v2\controllers;

/**
 * Created by PhpStorm.
 * User: yu
 * Date: 16/3/21
 * Time: 15:20
 */

use Yii;
use yii\web\Controller;
use app\custominterface\v2\LinksInterface;

class  LinkController extends  Controller implements LinksInterface{

    /**
     * 列出这个订单下的全部链接
     * @return mixed
     */
    public function actionList()
    {
        // TODO: Implement actionList() method.
    }

    /**
     * 添加一个链接
     * @return mixed
     */
    public function actionAdd()
    {
        // TODO: Implement actionAdd() method.
    }

    /**
     * 审核
     * @return mixed
     */
    public function actionCheck()
    {
        // TODO: Implement actionCheck() method.
    }

    /**
     * 删除自己的链接
     * @return mixed
     */
    public function actionDel()
    {
        // TODO: Implement actionDel() method.
    }

    /**
     * 这是一个测试的例子
     * @return mixed
     */
    public function actionTest()
    {
        // TODO: Implement actionTest() method.
    }
}

总结

在多人开发中,或者团队内的成员水平差距比较大的情况下,采用面向接口的方式,可以提高开发效率。

: )

你可能感兴趣的:(【PHP】Yii2团队基于接口(interface)开发方式最佳实践)