专栏首页程序员的碎碎念π框架从入门到放弃

π框架从入门到放弃

什么是π框架?

全称Phalapi,是一个PHP轻量级开源接口框架,以下是他的优点:

免费:最好的往往是免费的; 不断更新:15年发布,到现在不断的更新和完善,现已达到2.X版本; 简单易学:新版本引入了命名空间和composer统一管理依赖包,相对有thinkphp5框架学习基础的人,很快就可以从入门到实战了; 提供很多接口服务:可用于快速搭建微服务、RESTful接口或Web Services;

2.X版本

使用了composer统一管理依赖包 引入了命名空间 遵循PSR-4规范

适用场景

为移动App(包括iOS、iPad、Android、Windowns Phone等终端)提供接口服务; 用于搭建接口平台系统,提供聚合类接口服务,供其他后端系统接入使用; 为前后端分离的H5混合页面应用,提供Ajax异步接口;

入门

前面说了,phalapi框架新版本2.x与旧版本1.x传统的设计理念的不同,学过thinkphp5的人,半天就可以入门π框架,但如果没学过thinkphp5的人岂不是一脸懵逼?不用担心,下面小编带你简单的过一下学习的流程。

下载

从官网【https://www.phalapi.net/】上下载2.x版本的π框架,放到你wamp集成环境下可以访问位置(当然你单独用Nginx或Apache服务也行,集成环境只是图个方便),还有最好用火狐浏览器显示接口返回的json数据,(它会让数据结构更加清晰,方便你学习),最后建议一个编辑器那就是PhpStorm

访问默认接口

安装完相应工具,你离成功就不远啦!在火狐浏览器输入:http://localhost/phalapi/public/(根据个人根目录的不同在访问),效果如下:

ps:(如未显示全,可右滑)
与我不同的是,你没显示debug数据,可在config/sys.php修改debug为true

那么为什么会有数据显示呢?我们明明就没有写接口呀?因为这个默认接口服务,也可以说是example;

红框:入口文件 黄框:默认访问api类Site 篮框:默认访问接口服务

项目源代码放置在上图中的src文件,里面各个命名空间对应一个子目录,默认命名空间是app,里面主要有Api、Domain、Model这三个目录以及存放函数的functions.php文件。 当需要新增一个接口时,先要在Api层添加一个新的接口文件。例如对于Hello World示例,可以使用你喜欢的编辑器创建一个./src/app/Api/Hello.php文件,并在里面放置以下代码。(如图)

// 文件 ./src/app/Api/Hello.php
<?php
namespace App\Api;

use PhalApi\Api;

class Hello extends Api {

    public function world() {
        return array('title' => 'Hello World!');
    }
}

访问一个接口

通常情况下,建议可访问的根路径设为/path/to/PhalApi2/public。若未设置,此时接口访问的URL格式为:接口域名/public/?s=Namespace.Class.Action。其中,s参数用于指定待请求的接口服务,由三部分组成

组成部分

是否必须

默认值

说明

Namespace

可选

APP

Api命名空间前缀

Class

必须

待请求的接口类名

Action

必须

待请求的接口类方法名

PS:(如未显示全,可右滑)
Nmaespace的多级命名空间时用下划线分割
Class通常首字母大写
Action通常首字母大写。若Class和Action均未指定时,默认为Site.Index

效果

PS:当响应成功时,http状态码应该为200,我在源代码里修改响应类ret为1

恭喜!你已顺便完成PhalApi 2.x 简单的接口开发了!

在这里,小编对代码进行了部分注释,希望对大家的学习有所帮助,也希望有问题加我微信(wzc88czw)交流学习心得。

本文分享自微信公众号 - 程序员的碎碎念(gh_53e607dd4782),作者:benny

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-02-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • π框架之ADM分层架构

    目录结构 phalapi 2.X版本与第一个版本在项目目录结构上有很大的差异,更面向自动化、国际化和流行化,学习起来更易懂。(前提是你理解了composer、命...

    benny
  • 微信小程序二维码实例开发

    开始 小编初学微信小程序,想做一个二维码生成器;作为一个小白,踩了不少坑,在这里分享给大家“如何在微信小程序上生成二维码”。 步骤 就像写前端代码一样,html...

    benny
  • git上传更新项目-错误总结

    前些天做完项目一部分内容的时候,想git上传代码上去远程仓库里,却出现了不少git的错误提示信息。在这里总结一下吧: 一、正确的git上传更新项目步骤为:...

    benny
  • Api接口设计需要考虑到de因素呢

    设计接口是一件容易的事,也是件困难的事。设计接口每个人都会,每个人都能设计,也由此产生了各种各样的理念的接口。工作这么多年,我也很有感悟。很多人会说,设计接口多...

    php007
  • Java编程思想精粹(On Java8)(十)-接口

    尽管你的第一想法是创建接口,但对于构建具有属性和未实现方法的类来说,抽象类也是重要且必要的工具。 你不可能总是使用纯粹的接口。

    JavaEdge
  • Jtro的技术分享:c#的接口使用

    接口的特征: 1.接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员 2.不能直接实例化接口 3.接口可以包含时间事件、索引器、方法和属...

    LittleU
  • 一分钟了解“好”接口的设计与实现

    一、好接口的特性 易读 易用,难于误用 功能独立 容易扩展 二、好接口设计的基本原则 只做并做好一件事 函数名自解释 不恰当的函数名,往往是不恰当设计的征...

    架构师之路
  • 多态的灵魂,面向接口的程序设计,这才是你该懂得的接口

    比如,显示器中封装了很多电子元器件,这些元器件连接在一起为显示器的正常共工作提供支持,那显示器如何与外界的其他设备(如电脑主机、外放音响、耳机等设备)通信交互呢...

    老夫编程说
  • 「JAVA」Java面向对象之面向接口编程,细节都在这里了

    比如,显示器中封装了很多电子元器件,这些元器件连接在一起为显示器的正常共工作提供支持,那显示器如何与外界的其他设备(如电脑主机、外放音响、耳机等设备)通信交互呢...

    老夫编程说
  • Java编程思想精粹(九)-接口

    尽管你的第一想法是创建接口,但对于构建具有属性和未实现方法的类来说,抽象类也是重要且必要的工具。毕竟你不可能总是使用纯粹的接口。

    JavaEdge

扫码关注云+社区

领取腾讯云代金券