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

简介: 前言貌似很多公司都转向了使用Yii2做项目开发~当团队开发人员过多的时候,对接口的定义就成了困难,再说,命名本来就是个玄学的东西。之前早就听说过面向接口开发,这几天就试了下,感觉还不错,分享出来,一起进步。

前言

貌似很多公司都转向了使用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.
    }
}

总结

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

: )

目录
相关文章
|
数据采集 存储 缓存
PHP爬虫的使用与开发
本文深入探讨了PHP爬虫的使用与开发,涵盖基本原理、关键技术、开发实践及优化策略。从发送HTTP请求、解析HTML到数据存储,再到处理反爬机制,全面指导读者构建高效可靠的爬虫程序。
342 3
|
10月前
|
安全 PHP
PHP 8 新特性实战:提升开发效率的利器
PHP 8 新特性实战:提升开发效率的利器
271 87
|
10月前
|
安全 PHP
PHP 8 新特性实战:提升开发效率的利器
PHP 8 新特性实战:提升开发效率的利器
316 88
|
10月前
|
安全 编译器 PHP
PHP 8 新特性:现代开发的强力引擎
PHP 8 新特性:现代开发的强力引擎
276 89
|
10月前
|
安全 编译器 PHP
PHP 8 新特性:现代化开发的飞跃
PHP 8 新特性:现代化开发的飞跃
397 89
|
10月前
|
安全 大数据 PHP
PHP 7+ 新特性实战指南:提升开发效率
PHP 7+ 新特性实战指南:提升开发效率
265 87
|
8月前
|
消息中间件 人工智能 Java
抖音微信爆款小游戏大全:免费休闲/竞技/益智/PHP+Java全筏开源开发
本文基于2025年最新行业数据,深入解析抖音/微信爆款小游戏的开发逻辑,重点讲解PHP+Java双引擎架构实战,涵盖技术选型、架构设计、性能优化与开源生态,提供完整开源工具链,助力开发者从理论到落地打造高留存、高并发的小游戏产品。
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
706 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
12月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
632 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
前端开发 PHP 开发者
Wordpress主题开发之index.php
本文介绍了 WordPress 主题开发中页面结构与模板文件的使用方法。通过 header.php、sidebar.php、footer.php 和 index.php 等模板文件,实现网站模块化设计,便于统一管理和代码重用。Header 部分包含 logo、导航条等;Content 展示主体内容;Side bar 显示推荐信息或广告;Footer 则呈现版权和备案信息等内容。文章还提供了各模板文件的具体代码示例,帮助开发者快速理解和应用 WordPress 模板机制。
322 9