【PHP】Yii2团队基于接口(interface)开发方式最佳实践
2016-03-21 15:26
1011 查看
前言
貌似很多公司都转向了使用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. } }
总结
在多人开发中,或者团队内的成员水平差距比较大的情况下,采用面向接口的方式,可以提高开发效率。: )
相关文章推荐
- ThinkPHP开发笔记-前后端数据交互
- ThinkPHP开发笔记-用户登录注册
- ThinkPHP开发笔记-控制器
- ThinkPHP开发笔记-视图
- ThinkPHP开发笔记-模型
- 调用WordPress函数统计文章访问量及PHP原生计数器的实现
- php回调后门,php过WAF一句话,php最新一句话,php过狗一句话.
- php各版本下载地址
- PHP QR Code - QR code generator, an LGPL PHP library
- php 类、方法关键字
- PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
- php递归使用示例(php递归函数)
- PHPUnit整合ThinkPHP的库TPUnit
- PHP编程中尝试程序并发的几种方式总结
- php中ajax返回值
- PHP的Laravel框架中使用消息队列queue及异步队列的方法
- [ActionScritp 3.0] 使用LocalConnection建立通信
- composer 安装,并安装yii2
- DEDEcms 在php5.4以上 后台登录空白解决办法
- php将image转换为base64编码