PhalApi 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
PhalApi 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
PhalApi 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache License
开发语言 PHP
操作系统 跨平台
软件类型 开源软件
所属分类 Web应用开发Web框架
开源组织
地区 国产
投 递 者 暗夜在火星
适用人群 未知
收录时间 2015-01-25

软件简介

PhalApi接口框架 / PhalApi API Framework

Latest Stable Version Total Downloads Latest Unstable Version License

PhalApi Pro 专业版 - 专注接口开发管理和开放平台搭建
PhalApi Pro - focus on API and Open Platform

开发文档 / Documents

专为PHPer准备的优雅而详细的开发文档,请看:PhalApi 2.x 开发文档
PhalApi 2.x English Docs.

在线示例 / Demo

快速安装 / Install

composer一键安装 / Install by composer

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

One-click installation can be achieved by using the command of composer to create a project.

$ composer create-project phalapi/phalapi

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

手动下载安装 / Download and Install manually

或者,也可以进行手动安装。将此Git项目代码下载解压后,进行可选的composer更新,即:
Alternatively, manual installation is also possible. Download PhalApi Project master-2x branch Source code. After downloading and unzipping, perform an optional composer update:

$ composer update

部署 / Deployment

Nginx配置 / Nginx Configuration

如果使用的是Nginx,可参考以下配置。
If you are using Nginx, you can refer to the following configuration.

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。
Point the root path of the visit to public folder. Save and reload nginx.

温馨提示:推荐将访问根路径指向/path/to/phalapi/public。
Tips: It is recommended to point the root path of the visit to /path/to/phalapi/public.

数据库配置 / Database Configuration

如何使用的是MySQL数据库,参考修改./config/dbs.php数据库配置。
If you are using MySQL, please edit ./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目录添加写入权限。更多安装说明请参考文档下载与安装
At last, add writeable permission to folder runtime. For more detail about installation, refer to Download and Installation.

使用 / Usage

调用接口 / API Request

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

For PhalApi, the default communicate protocol is HTTP/HTTPS. According to the specific implementation of the API service, we could use GET or POST to request. By default, you can specify the service parameter or s for short when requesting. The default API service is App.Site.Index.

对应执行的PHP代码在./src/app/Api/Site.php文件,源码片段如下:
The source PHP code of App.Site.Index API service is at ./src/app/Api/Site.php file.

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

/**
 * 默认接口服务类
 * @author: dogstar <chanzonghuang@gmail.com> 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'],
        );
    }
}

接口请求后结果输出类似如下:
API result as below after requesting:

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

运行效果,截图如下:
Runtime Sreenshot:

_20190201151943

查看在线接口文档 / Visit Online API List Documents

PhalApi会根据你编写的接口的参数配置和代码注释,自动实时生成在线接口文档。在线接口文档链接为:
PhalApi will generate realtime online API documents automatically by PHP code and PHP comments. You can visit them by:

浏览效果类似如下:
Preview:

进入Portal运营平台 / Use Portal Platform

PhalApi采用了当前流行且优秀的layuimin开发全新的管理后台,专门提供给非技术的运营人员使用(技术人员也可使用)。安装Portal前请先配置好数据库连接。如果需要单独升级Portal,可进入应用市场免费下载到本地后安装升级。

PhalApi provides a new management system and we name it Portal.

翻译 / i18n

修改./public/init.php文件,可设置当前语言。
Edit ./public/init.php file to set current language.

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

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

一张图告诉你如何使用PhalApi 2.x / All in One Picture

phalapi-install

子项目 / Sub Projects

还有问题,怎么办?/ Any Question?

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

Welcome to report any issue here.
If you like PhalApi, welcome to give us a Star at Github.

开源许可协议 / Licence

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

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(10) 发布并加入讨论🔥
发表了资讯
2022/12/02 17:35

PhalApi 开源接口框架 v2.19.0 版本更新

PhalApi开源接口框架 v2.19.0 版本更新 主要更新 1、新增 生成PHP代码骨架的 phalapi-buildcode命令,由 萤火虫 协助提供; $ ./bin/phalapi-buildcode Wecome to use ./bin/phalapi-buildcode command tool v0.0.1 Example: ./bin/phalapi-buildcode --a User/Reg Usage: Command [options] [arguments] --a 创建一个API层文件 --d 创建一个Domain层文件 --m 创建一个Model层文...

0
0
发表了资讯
2022/05/06 12:14

PhaApi v2.17.3 版本发布,支持.env文件

PhalApi 2.17.3 [主要更新] 1、在线接口文档,请求方式同步显示,并且修复接口标题有HTML样式时无法显示标题的问题 2、集成.env文件的环境变量配置,新增文档使用.env进行环境配置 [BUG修复] 1、fix:使用window.localStorage存储接口的在线调试参数(PR提交合并,by ledccn)

0
0
2020/07/01 11:04

PhalApi v2.15.0 发布,PHP 轻量级开源接口框架

PhalApi 2.15.0 [主要更新] 1、添加脚本,一键生成DataModel源代码,bin/phalapi_build_data_model.php 2、调整优化应用市场,向更开放的开源社区方向调整,插件源代码仓库位置 3、开源协议从原来的GPL-2调整成更开放的Apache License,更利于商业化使用 [BUG修复] 1、修复部署在非public目录下,在线接口文档样式加载失败的问题 2、解决使用 phpstorm 编辑时,因为找不到闭合标签爆红...

3
4
2020/04/29 17:27

PhalApi 2.14.1(国际版)发布,PHP 轻量级开源接口框架

PhalApi 2.14.1 [主要更新] 1、增加扩展phalapi/ding-com-bot,钉钉企业内部webhook机器人扩展,by NullUserException 2、在线接口文档支持设置文档查看密码 3、在线接口文档支持翻译,提供英文和简体中文,可进行语言切换 4、一些已知bugfixed [Portal运营后台] 1、一些已知bugfixed

4
7
2020/04/01 09:23

PhalApi v2.13(致敬版) 发布,PHP 轻量级开源接口框架

PhalApi 2.13.3 [主要更新] 1、Cache具体实现类添加Cache::pull($key)新方法,实现Get&Delete操作。PhalApi\Cache接口不添加此方法,避免升级后影响已有的实现类。 2、DataApi进驻Kernal内核 3、上线英文文档:https://docs-en.phalapi.net/#/ ,海外,支持HTTPS,bywilliamjiangsa 4、增加错误处理,PhalApi\Error,可纪录警告、提醒和致命错误 5、在线接口文档,支持更多示例,如:Javascript示例、Object-C示例、Java示例、C...

0
10
2020/03/12 18:19

PhalApi 2.12.2 全新发布,PHP 轻量级开源接口框架

PhalApi 2.12.2 [主要更新] NotORM底层包支持LEFT JOIN关联查询,新增接口alias($aliasTableName)和leftJoin($joinTableName, $aliasJoinTableName, $onWhere),接口更友好。 进行数据库查询时,以下划线+数字为后缀的表名会自动作为分表被解析,当分表策略不存在时会自动去掉数字后缀。通过新增的dbs.tables.__default__.keep_suffix_if_no_map 配置项,当设置为true时可以在当分表未匹配时依然保留数字作为表后缀。分表路由中...

4
6
2020/03/01 09:58

PhalApi 2.11.0 发布,PHP轻量级开源接口框架【一起抗“疫”,共克时艰!】

PhalApi 2.11.0 版本发布,PHP轻量级开源接口框架【一起抗“疫”,共克时艰!】 [主要更新] 1、接口文档,接口命令空间翻译成中文,把App显示为我的应用 2、在线接口文档兼容扩展类库中多级命名空间的接口,例如PhalApi\扩展名.Site.Index调整为PhalApi_扩展名.Site.Index 3、优化接口文档在线测试交互,添加loading,避免接口请求失败时无法区分 4、文件日记支持日记文件名前缀配置,以及改用工厂方法加系统配置方式初始化注册...

1
5
2020/01/01 17:53

PhalApi 2.10.1 版本发布,PHP 开源接口框架

[主要更新] 1、PDO支持具体驱动的连接选项,支持连接超时设置,避免接口长时间连接出现504 Time out 2、PDO调整为有错误时抛出携带更详细错误信息的PDOExcepion,避免笼统的错误提示 3、添加\PhalApi\Api::getApiCommonRules(),以便支持部分接口不需要全局应用参数的场景。 4、支持接口参数置空,通过NULL或FALSE赋值可将接口参数取消 5、在线接口文档,接口参数转换成客户端看到的参数类型 6、接口参数规则中添加is_doc_hide...

0
3
2019/11/03 20:06

PhalApi 2.9.1 版本发布,PHP 开源接口框架

[主要更新] 1、特别注意:数据库查询返回结果默认都为字符串类型,优化为自动类型匹配,如整型。如果不需要开启,则可添加 dbs.servers.db_master.pdo_attr_string 配置项为true,> 则可以保持原来继续返回为字符串的数据库结果。如果出现:the database server cannot successfully prepare the statement 错误,请进行调试并手动检测SQL的语法正确性。 2、对于接口参数规则,增加解析后的回调函数配置on_after_parse,支持多个...

0
2
2019/09/01 17:07

PhalApi 2.8.1 发布,PHP 开源接口框架

PhalApi 2.8.1 [主要更新] 1、文件日志PhalApi\Logger\FileLogger区分隐式静默和显式异常两种模式,可通过\PhalApi\DI()->debug全局模式或初始化时指定调试模式。为调试模式时,若写入失败将500异常提示 1、文件配置PhalApi\Config\FileConfig区分隐式静默和显式异常两种模式,可通过\PhalApi\DI()->debug全局模式或初始化时指定调试模式。为调试模式时,若配置不存在将500异常提示 [辅助更新] [BUG修复] 1、URI路由匹配模式下默...

0
8
2019/07/01 09:42

PhalApi 2.7.0 版本发布(暑假欢乐版)

[主要更新] 1、在系统配置中追加新的配置项sys.enable_sql_log:是否记录SQL日志。将上一版需要手动记录SQL日志的方式实现配置化。能不能同时记录一下当前运行的SQL命令的数据库? 2、文件缓存FileCache,追加新配置项:是否格式化缓存文件名enable_file_name_format,默认为TRU E。为FALSE时不格式化文件名,方便查看,但开发者需要注意文件名的有效性。 3、开放接口文档模板(即从Kernal移到PhalApi,方便项目修改);并在接口...

1
3
2018/12/01 15:30

PhalApi 2.4.0 版本发布,PHP 开源接口框架

PhalApi 2.4.0 [主要更新] 1、在线文档,样式优化,并添加接口搜索功能,方便查找 [辅助更新] 1、新增CORS跨域扩展,由@吞吞小猴 提供 2、2.x文档完善,丰富数据库操作的说明及示例 [BUG修复] 1、分表策略下默认缺省表名再次获取时,因缓存击中而最终出现表_xxx不存在,bugfixed 2、默认接口返回时,对于XML格式的输出进行object转字符串的报错修正 相关链接: PhalApi在线文档:http://www.phalapi.net/wikis/ PhalApi免费下载...

1
13
2018/04/01 20:40

PhalApi 2.2.2 发布,PHP轻量级开源接口框架

PhalApi 2.2.2 发布,PHP轻量级开源接口框架 [主要更新] 1、JSON格式错误时,追加参数错误提示 2、在线接口文档美化,添加顶部导航菜单,并添加友好的图标 [辅助更新] 1、迁移phalapi/apkAPK文件解包处理扩展,由 @喵了个咪 提供 [BUG修复] 1、单元测试兼容高版本的PHPUnit 2、NotORM数据库查询失败时,修正空对象调用问题 3、修复 接口详情页接口测试工具bug/新增多文件上传支持 @天未白 [如何更新] 修改composer.json文件中P...

2
11
2018/01/07 18:18

PhalApi 2.2.0 发布,PHP轻量级开源接口框架

PhalApi 2.2.0 发布了,主要改进内容包括: [主要更新] 1、内嵌二维码QrCode扩展,并添加生成二维码的示例接口服务Examples_QrCode.Png 2、在线接口列表文档、在线接口详情文档,渲染时支持指定视图路径 [辅助更新] 1、界面更美化的在线接口文档扩展DocumentUI ,由 @xcalder 提供,参考示例 2、新增生成二维码QrCode扩展,基于PHP QrCode实现。 3、新增生成条形码barcode扩展,基于barcodegen实现。 4、新增拼音转换pinyin扩展...

0
11
发表了资讯
2017/11/05 09:55

PhalApi 2.1.2 发布,PHP轻量级开源接口框架

[前言] 感谢对PhalApi的关注!PhalApi是一个PHP轻量级开源接口框架,致力于快速开发接口服务。支持HTTP/SOAP/RPC等协议,可用于搭建接口/微服务/RESTful接口/Web Services。 为了提供更主流、面向未来、符合大家所期望的开源接口框架,我们于2017.09发布了基于composer、命名空间的2.x全新体验系列版本。经过约半年的研发、两个月的内测、以及两个月的公测,2.x 现已稳定,并有大部分同学正在使用PhalApi 2.x。因此,大家可放心...

1
21
发表了资讯
2017/09/02 15:48

开源 PHP 轻量级 API 接口开发框架 PhalApi v2.0.1 发布

[前言] 大家好呀PhalApi又和小伙伴们见面了,经过了快半年的准备PhalApi2在今天终于正式发布了,如果PhalApi1.X版本是自行车的话,PhalApi2.X版本就是小汽车,能为开发者带来更加省心省力开发体验,最新的PhalApi2使用Composer进行包管理可以让大家享受到Composer带来的丰富功能,并且PhalApi2开发小组也将针对PhalApi2开发迁移相关扩展库,让大家以更低的成本来使用PhalApi2,当然PhalApi1.X版本的童鞋也不用担心,PhalApi的更新会兼容1...

8
25
发表了资讯
2017/07/01 15:21

PhalApi(π框架) v1.4.1 发布,PHP 轻量级 API 接口开发框架

[前言] 夏天的脚步悄悄来临,在各位小伙伴的辛勤付出下,PhalApi迎来了新版本V1.4.1,在这次更新中着重以开发者便捷为本新增优化了很多功能,如对接口文档添加了各项重要功能可以直接在文档页面进行接口调用等,新增了更多的扩展程序共各位开发人员使用,官方开源项目PhalApi-Blog也在如火如荼的进行中,总的来说PhalApi进入了百花齐放的阶段,让我们看看这次又能为你带什么什么惊喜吧~~~ 基于老版本开发的应用可以无缝升级到v1.4.1版本...

4
24
发表了资讯
2017/05/05 23:32

PhalApi (π框架) - v1.4.0 发布

在五四青年节之际,PhalApi迎来了1.4.0版本更新,此次更新围绕着快速开发为开发者提供更方便的工具功能考虑,实现了更友好的调试方式,更多的工具函数以及可以随时埋点的全球追踪器(看的宝宝的口水都已经出来了),让我们一起来看看此次更新会为大家带来什么惊喜吧!! 基于老版本开发的应用可以无缝升级到v1.4.0版本,直接覆盖核心文件PhalApi即可使用新版功能。 [主要更新] 1、追加调试功能,并把原来异常时直接500,在调试模式下更改...

3
10
发表了资讯
2017/03/03 22:03

PhalApi ( π 框架)-v1.3.6 踏青版版本更新

在春意盎然,生机勃勃之季, 充满活力的的 PhalApi (π框架) 迎来了鸡年首次更新 , 那么皮皮虾我们走 看看PhalApi有什么新的动态. 基于老版本开发的应用可以无缝升级到v1.3.6版本,直接覆盖核心文件PhalApi即可使用新版功能。 核心更新 1、开启英文版本的文档编写与代码版本注释 ( 框架核心代码的注释英文化 进度60% , 英文文档:http://www.phalapi.net/wikis/en/ 进度5%) 2、listAllApis.php添加左侧菜单,便于多接口时文档分类...

3
12
发表了资讯
2017/01/06 21:58

PhalApi 1.3.5 贺岁发布,PHP 轻量接口框架

[前言] 借春节来临之际, PhalApi(π框架)在此发布v1.3.5幺鸡贺岁小版本,同时祝愿各位同学新春快乐、万事如意! 基于老版本开发的应用可以无缝升级到v1.3.5版本,直接覆盖核心文件PhalApi即可使用新版功能。 [主要更新] 1、调试模式下,数据库连接失败时显示详细的错误信息,方便定位排查问题 2、错误日记追加,按现有的日记格式补充到已有的日记载体 3、将PhalApi_Model_NotORM::getTableName($id)抽象方法改为返回默认表名的...

6
15
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
10 评论
400 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部