【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.
    }
}

总结

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

: )

目录
相关文章
|
1月前
|
数据采集 存储 缓存
PHP爬虫的使用与开发
本文深入探讨了PHP爬虫的使用与开发,涵盖基本原理、关键技术、开发实践及优化策略。从发送HTTP请求、解析HTML到数据存储,再到处理反爬机制,全面指导读者构建高效可靠的爬虫程序。
58 3
|
14天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
122 18
|
1月前
|
PHP 开发者 UED
PHP中的异常处理机制深度剖析与最佳实践####
本文深入探讨了PHP中的异常处理机制,通过实例解析了try-catch结构、自定义异常类以及多级异常捕获的高级用法。不同于常规摘要的概览性质,本文的摘要直接指向核心——即如何在复杂的项目开发中有效利用PHP的异常处理功能来提升代码的稳定性和可维护性,为读者揭示了构建健壮PHP应用程序的关键策略。 ####
34 1
|
1月前
|
PHP 开发者 容器
PHP命名空间深度解析及其最佳实践####
本文深入探讨了PHP中引入命名空间的重要性与实用性,通过实例讲解了如何定义、使用及别名化命名空间,旨在帮助开发者有效避免代码冲突,提升项目的模块化与可维护性。同时,文章还涉及了PHP-FIG标准,引导读者遵循最佳实践,优化代码结构,促进团队协作效率。 ####
31 1
|
2月前
|
监控 PHP 开发者
PHP中的异常处理:深入理解与最佳实践####
本文旨在通过探讨PHP中的异常处理机制,揭示其在现代Web开发中的重要性。我们将从基本概念入手,逐步深入到高级应用,包括自定义异常类、异常的最佳实践以及如何有效地捕获和处理多个异常,为开发者提供一套完整的解决方案来增强应用程序的健壮性和用户体验。 ####
|
2月前
|
SQL 安全 PHP
PHP安全性深度剖析:防范常见漏洞与最佳实践####
本文深入探讨了PHP编程中不可忽视的安全隐患,重点介绍了SQL注入、XSS攻击、CSRF攻击及文件包含漏洞等四大常见安全威胁。通过详尽的案例分析与防御策略阐述,为开发者提供了一套实用的安全编码指南。文章强调,提升代码安全性是保障Web应用稳健运行的关键,鼓励开发者在日常开发中积极践行安全最佳实践。 ####
|
2月前
|
API PHP 数据库
PHP中的异常处理机制深度解析与最佳实践####
本文深入探讨了PHP中异常处理机制的核心概念、工作原理及其在现代Web开发中的应用。通过剖析try-catch结构、自定义异常类及异常的继承体系,揭示了如何高效地捕获、处理并管理运行时错误,以提升应用的稳定性和用户体验。文章还结合实例,分享了在实际项目中实施异常处理的最佳实践,帮助开发者构建更加健壮的PHP应用程序。 ####
|
2月前
|
PHP 开发者
PHP中的异常处理与最佳实践####
【10月更文挑战第29天】 本文深入探讨了PHP中异常处理的重要性及其实现方式,介绍了try-catch语句的使用方法和自定义异常类的创建。通过实例讲解如何在实际开发中有效捕获并处理异常,提高代码的健壮性和可维护性。 ####
47 4
|
1月前
|
SQL 安全 PHP
PHP安全性深度探索:防范常见漏洞与最佳实践####
本文深入剖析了PHP开发中常见的安全漏洞,包括SQL注入、XSS攻击、CSRF攻击及文件包含漏洞等,并针对每种漏洞提供了详尽的防御策略与最佳实践。通过实例分析,引导读者理解如何构建更加安全的PHP应用,确保数据完整性与用户隐私保护。 ####
|
2月前
|
XML JSON API
【PHP开发专栏】PHP RESTful API设计与开发
随着互联网技术的发展,前后端分离成为Web开发的主流模式。本文介绍RESTful API的基本概念、设计原则及在PHP中的实现方法。RESTful API是一种轻量级、无状态的接口设计风格,通过HTTP方法(GET、POST、PUT、DELETE)操作资源,使用JSON或XML格式传输数据。在PHP中,通过定义路由、创建控制器、处理HTTP请求和响应等步骤实现RESTful API,并强调了安全性的重要性。
43 2