• Stars
    star
    1,569
  • Rank 29,832 (Top 0.6 %)
  • Language
    PHP
  • License
    Apache License 2.0
  • Created over 9 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

PhalApi开源接口框架,简称π框架,一个轻量级PHP开源接口框架,专注于接口服务开发。接口,从简单开始!

apic

PhalApi开源接口框架 / PhalApi API Framework

读音:派框架,官网:https://www.phalapi.net/

Latest Stable Version Total Downloads Latest Unstable Version License

Stargazers over time

Stargazers over time

开发文档

专为PHPer准备的优雅而详细的开发文档,基本都能在文档找到你要的答案,请看:PhalApi 2.x 开发文档

在线示例

快速安装

composer一键安装

使用composer创建项目的命令,可实现一键安装。

$ composer create-project phalapi/phalapi

温馨提示:关于composer的使用,请参考Composer 中文网 / Packagist 中国全量镜像

手动下载安装

或者,也可以进行手动安装。将此Git项目代码下载解压后,进行可选的composer更新,即:

$ composer update

部署

Nginx配置

如果使用的是Nginx,可参考以下配置。

server {
    listen 80;
    server_name dev.phalapi.net;
    # 将根目录设置到public目录
    root /path/to/phalapi/public;
    charset utf-8;

    location / {
        index index.php;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # 根据当前环境,选择合适的通讯方式
        # fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

配置时需要将网站根目录设置到public目录,配置保存后重启nginx。

温馨提示:推荐将访问根路径指向/path/to/phalapi/public。

数据库配置

如何使用的是MySQL数据库,参考修改./config/dbs.php数据库配置。

return array(
    /**
     * DB数据库服务器集群 / database cluster
     */
    'servers' => array(
        'db_master' => array(                       // 服务器标记 / database identify
            'type'      => 'mysql',                 // 数据库类型,暂时只支持:mysql, sqlserver / database type
            'host'      => '127.0.0.1',             // 数据库域名 / database host
            'name'      => 'phalapi',               // 数据库名字 / database name
            'user'      => 'root',                  // 数据库用户名 / database user
            'password'  => '',	                    // 数据库密码 / database password
            'port'      => 3306,                    // 数据库端口 / database port
            'charset'   => 'UTF8',                  // 数据库字符集 / database charset
            'pdo_attr_string'   => false,           // 数据库查询结果统一使用字符串,true是,false否
            'driver_options' => array(              // PDO初始化时的连接选项配置
                // 若需要更多配置,请参考官方文档:https://www.php.net/manual/zh/pdo.constants.php
            ),
        ),
    ),

    // 更多代码省略……
);

最后,需要给runtime目录添加写入权限。更多安装说明请参考文档下载与安装

使用

调用接口

在PhalApi,你可以通过service参数(短名字是s参数)指定需要调用的接口服务。例如,访问默认接口服务。

http://dev.phalapi.net/?s=App.Site.Index

接口请求后结果输出类似如下:

{
    "ret": 200,
    "data": {
        "title": "Hello PhalApi",
        "version": "2.4.2",
        "time": 1501079142
    },
    "msg": ""
}

对应执行的PHP代码在./src/app/Api/Site.php文件,源码片段如下:

<?php
namespace App\Api;
use PhalApi\Api;

/**
 * 默认接口服务类
 * @author: dogstar <[email protected]> 2014-10-04
 */
class Site extends Api {
    public function getRules() {
        return array(
            'index' => array(
                'username'  => array('name' => 'username', 'default' => 'PhalApi', 'desc' => '用户名'),
            ),
        );
    }

    /**
     * 默认接口服务
     * @desc 默认接口服务,当未指定接口服务时执行此接口服务
     * @return string title 标题
     * @return string content 内容
     * @return string version 版本,格式:X.X.X
     * @return int time 当前时间戳
     * @exception 400 非法请求,参数传递错误
     */
    public function index() {
        return array(
            'title' => 'Hello ' . $this->username,
            'version' => PHALAPI_VERSION,
            'time' => $_SERVER['REQUEST_TIME'],
        );
    }
}

运行效果,截图如下:

_20190201151943

查看在线接口文档

PhalApi会根据你编写的接口的参数配置和代码注释,自动实时生成在线接口文档。在线接口文档链接为:

浏览效果类似如下:

接口文档详情页效果类似如下:
支持在线接口测试、请求示例说明、生成离线版HTML接口文档、实时更新。

翻译

修改./public/init.php文件,可设置当前语言。

// 翻译语言包设定-简体中文
\PhalApi\SL('zh_cn');

// Setting language to English
\PhalApi\SL('en');

一张图告诉你如何使用PhalApi 2.x

phalapi-install

2020视频教程

子项目

PhalApi composer 扩展

温馨提示:以上扩展需要先通过composer安装再使用。更多扩展类库的使用和开发,请参考文档:PhalApi框架扩展类库

PhalApi应用插件

温馨提示:应用插件和composer扩展的区别在于,应用插件颗粒度更大,功能更具体,可能不仅有数据库、接口、界面、还可能配合其他终端,并且不受composer的规范约束,是PhalApi自主发明和设计的开发方式。更多请参考:第三方应用插件开发教程

推荐产品

温馨提示:以上产品均使用了PhalApi开源框架,并为官方自主研发的产品,欢迎个人/团队/企业使用。

还有问题,怎么办?

如发现问题,或者任何问题,欢迎提交Issue到这里
如果喜欢,请帮忙在Github码云给个Star,也可以对PhalApi进行捐赠哦 ^_^。

开源许可协议 / Licence

Apache 2.0,Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。

由 广州果创网络科技有限公司 长期维护升级。

More Repositories

1

phalapi-iview-admin

基于PhalApi 2.4.2 和iView-Admin 2.3.0 的后台开源框架,纯前后端分离的主流设计,使用PHP7+Vue。
Objective-C
73
star
2

phalapi-library

PhalApi 1.x 扩展类库,与码云保持同步。2.x的扩展请移步到:http://docs.phalapi.net/#/v2.0/library
PHP
45
star
3

phalapi-blog

基于PhalApi+Vue.js的开源博客系统。
PHP
23
star
4

meet

《初识PhalApi —— 探索接口服务开发的技艺》,一本介绍开源框架PhalApi使用和进阶的电子书。
PHP
16
star
5

Web-Tools

开发者在线工具。我们致力于提供简单实用、贴心智能的在线工具,以提高我们日常的开发效率。这些工具之所以有生气,因为我们都是开发者!欢迎一起来贡献维护!
PHP
13
star
6

phalapi2

[即将废弃,转移回大本营] PhalApi 2.x 项目框架,可用于快速开发PHP接口服务,助你创造价值!主要更新:引入composer和命名空间,并遵循PSR-4。
11
star
7

kernal

PhalApi 2.0 框架核心部分,基于composer。
PHP
11
star
8

PHPMailer

PhalApi 2.x扩展类库,基于PHPMailer的邮件发送。
PHP
9
star
9

pay

PhalApi 2.x 第三方支付拓展,主要有:微信支付和支付宝支付。
PHP
8
star
10

phalapi-pro

PHP开放平台,搭建开放平台的专业选择。基于开源的PhalApi框架打造的商业软件,官方出品。通过云技术,助力企业完善信息化系统,削减成本、提升效率并为顾客提供更好的服务!
8
star
11

qrcode

PhalApi 二维码扩展,基于QRCode实现。
PHP
7
star
12

fast-route

PhalApi 2.x 扩展类库 - FastRoute路由,可以通过配置实现自定义路由配置,从而轻松映射到PhalApi中的service接口服务。
PHP
6
star
13

qiniu

PhalApi 2.x 扩展类库:七牛云存储接口调用
PHP
5
star
14

task

PhalApi 2.x 扩展类库 - Task计划任务,以接口服务形式实现的新型计划任务。
PHP
4
star
15

phprpc

PhalApi 2.x 扩展类库:PHPRPC,可用于phprpc协议的调用,服务端只需要简单添加入口即可完美切换。
PHP
4
star
16

xunhupay

PhalApi 2.x 虎皮椒支付扩展
PHP
3
star
17

notorm

基于NotORM类库的优化版本,专门用于PhalApi开源接口框架。
PHP
3
star
18

cli

PhalApi 2.x 扩展类库 - CLI命令行,基于GetOpt,以命令行方式运行API接口,可用于开发脚本、计划任务和命令行应用。
PHP
3
star
19

okayapi-demo

小白接口的H5开源示例,使用Amaze UI+VUE+JQuery+小白接口实现。
JavaScript
2
star
20

pinyin

PhalApi 2.x 拼音扩展,基于overtrue/pinyin实现。
PHP
2
star
21

barcode

PhalApi 条形码扩展,基于barcodegen实现。
PHP
2
star
22

phalapi-wiki

PhalApi 2.x framework wiki
HTML
1
star
23

phalapimp

PHP
1
star