【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了之后,会提示错误。

点击之后,会自动补全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

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

MaxCompute多团队协同数据开发项目管理最佳实践

MaxCompute多项目管理最佳实践 背景介绍: 厦门美柚科技有限公司,创始于2013年4月,是一家专注为女性服务的互联网公司.秉承"让女人更美更健康"的理念,美柚以经期管理为切入点,为女性提供备孕.怀孕.育儿.社区交流等功能服务.目前,美柚用户超过1亿,日活跃用户近千万,拥有约160个高活跃的女性话题圈,社区内用户日均互动量超500万帖,日均浏览量超过1.8亿次.之前各种数据开发.数据支持.数据挖掘都在同一个项目中,随着公司业务线的不断扩充,规模的不断壮大,参与大数据开发的部门(团

阿里云「MaxCompute最佳实践」征文大赛获奖文章公布

DT时代,越来越多的企业应用数据步入云端.与传统Hadoop相比,阿里云数加MaxCompute(原名ODPS)向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全.比如东润环能在3个月内业务全面交付云端,数据处理时间不到原来自建方式的1/3,并确保云上数据安全无忧.墨迹天气日志分析业务迁移到数加MaxCompute后,开发效率提升了超过5倍,存储和计算费用节省了70%,每天处理分析2TB的日志数据,更高效的赋能其个性

EasyStack获评2016年度制造行业OpenStack最佳实践

近日,由工业和信息化部信息化和软件服务业司指导,中国信息通信研究院和中国通信标准化协会共同主办,云计算开源产业联盟承办的"云计算开源产业联盟第一次成果发布会"在京召开. 工信部信息化和软件服务业司巡视员李颖.中国信息通信研究院党委书记李勇出席会议并致辞,云计算开源产业联盟常务副理事长 何宝宏主持会议.会议发布了中国首个云计算开源产业发展白皮书,以及政府.广电.电力.电信.教育.金融.医疗.制造八大行业基于OpenStack技术 的最佳实践.   EasyStack合作伙伴副总监 罗云飞

《配置管理最佳实践》——2.4 建立构建职能的注意事项

2.4 建立构建职能的注意事项 根据我的经验,在开发团队中实施构建工程最佳实践之前,必须要打消大家的疑虑.有时,对现有构建过程复杂度认识不足,可能会导致人为错误.代码缺陷.不断返工.生产效率低等问题.造成这种现象的大部分原因都是技术上的,另外可能是过程上的.而一旦有问题,就会有人把责任推到构建过程上来,建议简化构建过程.曾经遇到过在某产品中使用的技术特别复杂,而专业技术人员深陷于复杂的技术泥潭之中,并把它弄得更复杂了.显然,我们都希望尽可能地把事情变简单,做到万无一失.但是现实情况是,很多专业技

混合云模型管理最佳实践五大要点

对于认证考虑采用混合云模型的企业而言,其实现必须有计划,以便IT人员能够和现有私有云一样精准的进行管理.下面,我们给出了管理混合云的方式,假设IT团队遵循了企业ITIL最佳实践. 不管你如何小心的选择公有云服务,而且和你的私有云设计匹配的多么好,差异还是不可避免的存在.两个云之间的区别越大,就越难作为单一的实体管理这两个云.也会得到尽可能的延伸你的现有混合云管理战略和最佳实践的最大收获. 混合云管理战略应该涉及到下面的这些领域: 配置.IT团队必须细化创建.修改.不定和实现云安装的最佳实践.版本

【RESTful】Yii2实现RESTful架构配置最佳实践

Yii2实现RESTful架构配置最佳实践 为什么要用RESTful API 在服务器端,应用程序状态和功能可以分为各种资源.资源是一个有趣的概念实体,它向客户端公开.资源的例子有:应用程序对象.数据库记录.算法等等.每个资源都使用 URI (Universal Resource Identifier) 得到一个唯一的地址.所有资源都共享统一的接口,以便在客户端和服务器之间传输状态.使用的是标准的 HTTP 方法,比如 GET.PUT.POST 和 DELETE.Hypermedia 是应用程序

开发基于IBM Lotus Domino的Web 2.0应用的最佳实践

简介:本文介绍了开发基于 IBM Lotus Domino 的 Web 2.0 企业应用的最佳实践.这些最佳实践覆盖 系统开发的整个生命周期,包括系统设计阶段.实现阶段以及系统装配和部署阶段.根据本文所介绍的这 些方法,可以高效的开发高质量的基于 Domino 的 Web 2.0 企业应用. 背景简介和挑战 Domino 是 IBM Lotus 下面的一个旗舰产品,由于其提供了多层级的安全解决方案,内置集成的协同 服务应用和目录服务并提供灵活的数据库复制机制,因成为很多企业应用的重要平台. 随着

Git Flow—Git团队协作最佳实践

一.规范的Git使用 Git是一个很好的版本管理工具,不过相比于传统的版本管理工具,学习成本比较高. 实际开发中,如果团队成员比较多,开发迭代频繁,对Git的应用比较混乱,会产生很多不必要的冲突或者代码丢失等. 就像代码需要代码规范一样,使用Git进行代码管理同样需要一个清晰的流程和规范, Git Flow就是一个被广泛认可的Git使用最佳实践. Git Flow是Vincent Driessen提出的一个分支管理的策略,http://nvie.com/posts/a-successful-gi

基于AngularJS前端云组件最佳实践_AngularJS

AngularJS是google设计和开发的一套前端开发框架,他能帮助开发人员更便捷地进行前端开发.AngularJS是为了克服HTML在构建应用上的不足而设计的,它非常全面且简单易学习,因此AngularJS快速的成为了javascript的主流框架. 一.Amazing的Angular AnguarJS的特性 方便的REST: RESTful逐渐成为了一种标准的服务器和客户端沟通的方式.你只需使用一行javascript代码,就可以快速的从服务器端得到数据.AugularJS将这些变成了JS