前言
貌似很多公司都转向了使用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了之后,会提示错误。
点击之后,会自动补全interface内的function,还有对应的注释。
完整的class
<?php
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.
}
}
总结
在多人开发中,或者团队内的成员水平差距比较大的情况下,采用面向接口的方式,可以提高开发效率。
: )
时间: 2024-10-31 13:42:13