A PHP framework foucs on API fast development.接口,从简单开始!PhalApi简称π框架,一个轻量级PHP开源接口框架,专注于接口服务开发。

Overview

apic

PhalApi开源接口框架 / PhalApi API Framework

读音:派框架

Latest Stable Version Total Downloads Latest Unstable Version License

Stargazers over time

Stargazers over time

开发文档 / 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 <[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'],
        );
    }
}

接口请求后结果输出类似如下:
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类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。

Issues
  • 我想写一个phalapi-swoole-extends来将phalapi整合即时通讯且框架常驻内存

    我想写一个phalapi-swoole-extends来将phalapi整合即时通讯且框架常驻内存

    想问下哪些需要特别注意的,如phalApi_DI::$instance等一些静态变量或者其他的一些问题 如果已经有类似的扩展包,请推荐给我,就不用写了>_<

    opened by peter6968 6
  • 引用有误

    引用有误

    “有的时候宁愿付钱让你一周在床上待着,也不想让你用这周剩下的时间去调试你在周一所写的代码。 --丹·所罗门” 这句话不是 丹·所罗门 说的啊,看着好难受.

    opened by hncg 4
  • 官方文档可以改进一下下

    官方文档可以改进一下下

    有些路径字母一下子大写一下子小写

    建议统一一下下

    非常感谢该项目

    opened by ihewro 4
  • vendor/phalapi/kernal/src/Api.php第十行的注释有错别字[/狗头],别打我,我无意中发现的

    vendor/phalapi/kernal/src/Api.php第十行的注释有错别字[/狗头],别打我,我无意中发现的

    提供给开发人员自宝义的接口服务具体类继承

    opened by newmikeblue 4
  • 关于多数据库访问

    关于多数据库访问

    我有一组服务器A,B,C,D数据库结构完全一样.

    我有时需要访问服务器A的,有时需要访问的是服务器B的.

    除了为每个服务器的数据库建不同名的MODEL,有没有什么更好的方法?

    我目前是使用同一个MODEL,但在使用之前先判断当前要访问的是哪个数据库,预先修改默认服务器指向.

    但是这样子无法同时调取两个服务器的数据.

    opened by chenall 4
  • debug接口500

    debug接口500

    sys.debug=true或URL添加参数__debug__=1,接口500

    opened by kingswjw 4
  • 按照官方手册添加Nginx配置文件api.phalapi.net后无法重启Nginx

    按照官方手册添加Nginx配置文件api.phalapi.net后无法重启Nginx

    我添加的配置如下:

    server { listen 80 ; server_name api.phalapi.net; #设置成自己的服务器的域名能远程访问了。

        root /home/ubuntu/PhalApi/Public;
        charset utf-8;
    
        # Add index.php to the list if you are using PHP
        index index.html index.htm index.php index.nginx-debian.html;
        location / {
                index index.html index.htm index.php;
                try_files $uri $uri/ =404;
        }
        location ~ \.php$ {
                root /home/ubuntu/PhalApi/Public;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
    

    官方给的参考配置也尝试过,同样无效。

    opened by JamesZhan107 3
  • phal2.2.2 insert数据之后返回的主键id 是 0

    phal2.2.2 insert数据之后返回的主键id 是 0

    主键不是自增生成的,是自己计算的

    opened by CXY037 3
  • issue #22 的白名单问题文档中没有写

    issue #22 的白名单问题文档中没有写

    文档中 1.5 中的 应用参数并没有提及“白名单”的问题,但是框架代码中对“白名单”做了处理(将require改为false),并且默认设定了白名单(Site.Index)。 但是这样文档不写清楚很容易让人误解,建议将这个问题写到1.5的应用参数中。

    opened by finntenzor 3
  • 用dblib连接sqlserver失败

    用dblib连接sqlserver失败

    用dblib连接sqlserver时好像有点小问题 ,NotORMDatabase里有支持dblib的方法,但是在343行缺少了dblib_sqlserver的条件,不能成功连接数据库,添加上就能成功使用,不知道直接添加会不会有其他影响

    opened by deerlou 0
  • 修改字段后不能登录后台!

    修改字段后不能登录后台!

    我自己重新建了一个MyResponse.php 然后去di注册了 只要把ret修改为code字段 就无法登录后台,登录接口返回的json依旧有ret字段,但是这个值是null!

    opened by nicemoe 1
  • MYSQL8.0 报错

    MYSQL8.0 报错

    $condition['field is not ?'] = null;

    这种情况要报语法错误

    opened by Djcn 1
  • 多个过滤器共同协作

    多个过滤器共同协作

    这两天学习 PhalAPI ,在实现多个过滤器上遇到的问题. 从文档上看,过滤器的添加方式如下: $di->filter = new App\Common\UserFilter(); 而当我想实现多个过滤器的时候我的想法是: $di->filter = array('user'=> $di->filter = new App\Common\UserFilter()); 显然这是行不通的. 是否我还能从其他方面入手?或者重构过滤器的加载方法

    opened by nckf 0
  • 2.x版本自带的User好像有问题

    2.x版本自带的User好像有问题

    user是在插件里面初始化$di->user = new \App\Common\User\User(); 而这个时候API里面获取参数列表还没有完成,也就在User的__construct构造函数里无法获得user_id和token等参数,这导致islogin总是false

    opened by cxelove 0
  • 到处都是 substr(PHP_SAPI, 0, 3) == 'cli' 判断不友好

    到处都是 substr(PHP_SAPI, 0, 3) == 'cli' 判断不友好

    在以 php 的 cli-server 模式开发测试时,全都判定为 cli 命令行运行了,这是一个问题。 还有就是象 swoole 这样的本来就是 cli 模式的服务,更是全都不能用了。

    希望能另外定义一个常量,以这个常量来保存是否 cli 模式的状态。

    opened by huye 0
  • PhalApi 的 GPL许可协议,对商业程序不友好啊🙈🙈🙈

    PhalApi 的 GPL许可协议,对商业程序不友好啊🙈🙈🙈

    基于GPL许可协议开发的程序,传说必须同样使用GPL协议开放Source Code,不能作为闭源的,连作为Object Code引用都不行。LGPL协议才允许不开源,可作为Object Code引用。

    opened by liyujiang-gzu 2
  • 我克隆了这个项目,并配置了nginx规则,没有修改代码,上传出现如下问题

    我克隆了这个项目,并配置了nginx规则,没有修改代码,上传出现如下问题

    代码是直接克隆下来的 访问: http://127.0.0.1/examples/upload.html 并上传图片

    返回: http://127.0.0.1/?service=App.Examples_Upload.Go 504 Gateway Time-out nginx/1.17.9

    opened by Bingo821227 0
  • 官网文档中的“截图效果”显示不了了!

    官网文档中的“截图效果”显示不了了!

    很多页面的截图无法正常显示,如:https://www.phalapi.net/wikis/1-11.html

    opened by shaoyikai 0
Releases(2.17.2)
  • 2.17.2(Jul 13, 2021)

    PhalApi 2.17.2

    [BUG修复]

    • 1、SQL记录,只提取部分必要的参数,避免全部记录,以及避免记录密码等敏感信息到日志文件
    • 2、翻译和DataApi参数说明补充
    • 3、DataModel调用不存在方法时的异常提示信息,去掉多余的美元符号
    • 4、在线接口文档模板判断调整,避免出现warning
    Source code(tar.gz)
    Source code(zip)
  • 2.17.1(Dec 5, 2020)

    PhalApi 2.17.1

    [主要更新]

    • 1、新增API_NAMESPACE,方便在入口指定当前默认的命名空间,即默认模块。缺省值为:App
    • 2、新增HtmlResponse,支持简单页面渲染返回,@大卫

    [BUG修复]

    • 1、优化路由解析,解决开启后无法正常访问默认接口的问题,@大卫
    Source code(tar.gz)
    Source code(zip)
  • 2.16.0(Sep 30, 2020)

    PhalApi 2.16.0

    [主要更新]

    • 1、新增接口@method注释,可以限制接口请求方式为GET或POST或其他,同步修改接口文档列表页、接口文档详情页。
    Source code(tar.gz)
    Source code(zip)
  • 2.15.0(Jun 29, 2020)

    PhalApi 2.15.0

    [主要更新]

    • 1、添加脚本,一键生成DataModel源代码,bin/phalapi_build_data_model.php
    • 2、调整优化应用市场,向更开放的开源社区方向调整,插件源代码仓库位置

    [BUG修复]

    • 1、修复部署在非public目录下,在线接口文档样式加载失败的问题
    Source code(tar.gz)
    Source code(zip)
  • 2.4.1(Apr 29, 2020)

    PhalApi 2.14.1

    [主要更新]

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

    [Portal运营后台]

    • 1、一些已知bugfixed
    Source code(tar.gz)
    Source code(zip)
  • 2.14.0(Apr 26, 2020)

    PhalApi 2.14.0

    [主要更新]

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

    [Portal运营后台]

    • 1、一些已知bugfixed
    Source code(tar.gz)
    Source code(zip)
  • 2.13.3(Mar 31, 2020)

  • 2.13.2(Mar 31, 2020)

    PhalApi 2.13.2

    [主要更新]

    • 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示例、CURL示例、PHP示例、Python示例、Golang示例、C#示例
    • 6、内置User用户插件、Portal运营平台插件
    • 7、一些已知的bugfixed

    [Portal运营后台]

    • 1、添加菜单显示权限的控制,分可用户角色和指定用户
    • 2、实现插件的卸载
    • 3、管理员admin添加判断是否超管
    • 4、插件版本检测与更新提示
    • 5、首页调整
    • 6、一些已知的bugfixed
    Source code(tar.gz)
    Source code(zip)
  • 2.13.1(Mar 30, 2020)

    PhalApi 2.13.1

    [主要更新]

    • 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示例、CURL示例、PHP示例、Python示例、Golang示例、C#示例
    • 6、一些已知的bugfixed

    [Portal运营后台]

    • 1、添加菜单显示权限的控制,分可用户角色和指定用户
    • 2、实现插件的卸载
    • 3、管理员admin添加判断是否超管
    • 4、插件版本检测与更新提示
    • 5、一些已知的bugfixed
    Source code(tar.gz)
    Source code(zip)
  • 2.12.2(Mar 12, 2020)

    PhalApi 2.12.2

    [主要更新]

    • 1、NotORM底层包支持LEFT JOIN关联查询,新增接口alias($aliasTableName)leftJoin($joinTableName, $aliasJoinTableName, $onWhere),接口更友好。
    • 2、进行数据库查询时,以下划线+数字为后缀的表名会自动作为分表被解析,当分表策略不存在时会自动去掉数字后缀。通过新增的dbs.tables.__default__.keep_suffix_if_no_map配置项,当设置为true时可以在当分表未匹配时依然保留数字作为表后缀。分表路由中也可通过keep_suffix_if_no_map进行配置,且优先级高于__default__,同时能进行> 单独配置。
    • 3、当前环境的配置文件优先加载,新增宏定义API_MODE,可以是:dev, test, prod
    • 4、工具类PhalApi\Tool类中添加新方法:arrayExcludeKeys($array, $excludeKeys),可用于排除数组中不需要的键,例如用于排除数据库查询结果不需要的字段。
    • 5、基于layuimin开发管理后台
    • 6、在./config/di.php注入初始化文件,添加第三方插件的装载入口。
    • 7、在线接口文档UI美化,更优雅

    [Portal运营后台]

    作为历来的痛点,PhalApi虽然作为接口开源框架,但一直缺少管理后台。为此,PhalApi采用了当前流行且优秀的layuimin开发全新的管理后台。作为第一版管理后台,功能特点有:

    • 1、实现管理员创建、后台登录、修改密码和退出等功能
    • 2、添加管理后台模块接口,命名空间为Admin,并且提供管理员会话检测的PhalApi\DI->admin服务
    • 3、管理后台菜单的动态获取
    • 4、管理后台的静态页面示例调整

    [官方应用市场]

    官方应用市场已同步上线,欢迎广大开发者进驻!

    PhalApi应用市场:http://www.yesx2.com/

    [辅助更新]

    [BUG修复]

    • 1、修复mssql编码设置问题, 'NAMES' is not a recognized SET option.
    Source code(tar.gz)
    Source code(zip)
  • 2.11.0(Feb 27, 2020)

    PhalApi 2.11.0

    [主要更新]

    • 1、接口文档,接口命令空间翻译成中文,把App显示为我的应用
    • 2、在线接口文档兼容扩展类库中多级命名空间的接口,例如PhalApi\扩展名.Site.Index调整为PhalApi_扩展名.Site.Index
    • 3、优化接口文档在线测试交互,添加loading,避免接口请求失败时无法区分
    • 4、文件日记支持日记文件名前缀配置,以及改用工厂方法加系统配置方式初始化注册文件日记服务
    • 5、添加配置项sys.response.structure_map,支持接口返回结果的字段映射配置
    • 6、在线接口文档的semantic前端资源改用本地

    [辅助更新]

    [BUG修复]

    • 1、修复离线文档生成时不能指定列表和详情页模板,并且统一模板路径
    Source code(tar.gz)
    Source code(zip)
  • 2.10.1(Dec 28, 2019)

    PhalApi 2.10.1

    [主要更新]

    • 1、PDO支持具体驱动的连接选项,支持连接超时设置,避免接口长时间连接出现504 Time out
    • 2、PDO调整为有错误时抛出携带更详细错误信息的PDOExcepion,避免笼统的错误提示
    • 3、添加\PhalApi\Api::getApiCommonRules(),以便支持部分接口不需要全局应用参数的场景。
    • 4、支持接口参数置空,通过NULL或FALSE赋值可将接口参数取消
    • 5、在线接口文档,接口参数转换成客户端看到的参数类型
    • 6、接口参数规则中添加is_doc_hide配置,设置为true时,接口文档不显示此参数,但实际上仍可在PHP代码中使用
    • 7、缺少必填接口参数时,追加desc到翻译
    • 8、兼容接收JSON的参数
    Source code(tar.gz)
    Source code(zip)
  • 2.9.1(Nov 3, 2019)

    PhalApi 2.9.1

    [主要更新]

    • 1、特别注意:数据库查询返回结果默认都为字符串类型,优化为自动类型匹配,如整型。如果不需要开启,则可添加 dbs.servers.db_master.pdo_attr_string 配置项为true,> 则可以保持原来继续返回为字符串的数据库结果。如果出现:the database server cannot successfully prepare the statement 错误,请进行调试并手动检测SQL的语法正确性。
    • 2、对于接口参数规则,增加解析后的回调函数配置on_after_parse,支持多个函数名的管道配置和回调函数配置,详细请见文档说明[解析后回调函数 on_after_parse](http://docs.ph alapi.net/#/v2.0/api-params?id=%e5%85%ac%e5%85%b1%e5%8f%82%e6%95%b0%e9%85%8d%e7%bd%ae%e9%80%89%e9%a1%b9)
    • 3、添加日志接口示例

    [辅助更新]

    • 1、迁移User扩展到2.x,phalapi/user
    • 2、日志文件在di初始化时,若缺少目录权限,在调试时不抛出异常,避免初始化失败

    [BUG修复]

    + 1、PHPRPC扩展,[修复rpc请求$_GET为空问题](https://github.com/phalapi/phprpc/pull/1)
    + 2、对于array接口参数规则,当传递参数为空字符串时,解析为空数组array(),而不是包含一个空字符串的数组array('')
    
    Source code(tar.gz)
    Source code(zip)
  • 2.8.1(Sep 1, 2019)

    WX20190823-104624

    PhalApi 2.8.1

    [主要更新]

    • 1、文件日志PhalApi\Logger\FileLogger区分隐式静默和显式异常两种模式,可通过\PhalApi\DI()->debug全局模式或初始化时指定调试模式。为调试模式时,若写入失败将500异常提示
    • 1、文件配置PhalApi\Config\FileConfig区分隐式静默和显式异常两种模式,可通过\PhalApi\DI()->debug全局模式或初始化时指定调试模式。为调试模式时,若配置不存在将500异常提示

    [辅助更新]

    [BUG修复]

    • 1、URI路由匹配模式下默认接口读取不到
    • 2、配置多个数据库时候, 调用get、update时会提示 dbs.tables should not be empty (issue 97
    Source code(tar.gz)
    Source code(zip)
  • 2.8.0(Aug 23, 2019)

    WX20190823-104624

    PhalApi 2.8.0

    [主要更新]

    • 1、文件日志PhalApi\Logger\FileLogger区分隐式静默和显式异常两种模式,可通过\PhalApi\DI()->debug全局模式或初始化时指定调试模式。为调试模式时,若写入失败将500异常提示
    • 1、文件配置PhalApi\Config\FileConfig区分隐式静默和显式异常两种模式,可通过\PhalApi\DI()->debug全局模式或初始化时指定调试模式。为调试模式时,若配置不存在将500异常提示

    [辅助更新]

    [BUG修复]

    • 1、URI路由匹配模式下默认接口读取不到
    • 2、配置多个数据库时候, 调用get、update时会提示 dbs.tables should not be empty (issue 97
    Source code(tar.gz)
    Source code(zip)
    WX20190823-104624.png(22.93 KB)
  • 2.7.0(Jun 27, 2019)

    PhalApi 2.7.0

    20190701093439

    [主要更新]

    • 1、在系统配置中追加新的配置项sys.enable_sql_log:是否记录SQL日志。将上一版需要手动记录SQL日志的方式实现配置化。能不能同时记录一下当前运行的SQL命令的数据库?
    • 2、文件缓存FileCache,追加新配置项:是否格式化缓存文件名enable_file_name_format,默认为TRU E。为FALSE时不格式化文件名,方便查看,但开发者需要注意文件名的有效性。
    • 3、开放接口文档模板(即从Kernal移到PhalApi,方便项目修改);并在接口详情在线文档,追加支持JSON示例的配置和展示。接口返回的示例放置在./src/app/demos目录下,各个应用 分开,文件名以接口服务名称为文件名,后缀为.json
    • 4、数据库连接配置支持sql server(通过dblib驱动),感谢 @薛胜林提供。
    • 5、调整默认的数据库配置,表前缀prefix默认为空。此调整只对新项目的配置有影响,该配置位于./config/dbs.php
    • 6、添加sys.enable_uri_match配置,开启后可进行URI路由匹配。

    [辅助更新]

    • 1、PhalApi 2.x扩展类库,PHPMailer,添加port端口配置,可以支持465等端口。
    • 2、添加PhalApi 2.x扩展类库,MongoDB 扩展by logmecn

    [BUG修复]

    • 1、PhalApi 2.x FastRoute扩展一些bugfixed,感谢 @pluveto
    Source code(tar.gz)
    Source code(zip)
    20190701093439.jpg(21.78 KB)
  • 2.6.1(Apr 28, 2019)

    PhalApi 2.6.1

    [主要更新]

    • 1、默认MD5签名增加分隔符,防止位移篡改参数
    • 2、清除vendor下的空目录,避免composer update失败
    • 3、获取头部,兼容HTTP_USER_AGENT和User-Agent这两种写法,提高友好性
    • 4、NotORM底层包新增接口:executeSql($sql, $parameters),可用于执行带结果的原生sql。
    • 5、NotORM底层包新增支持更新单个或多个计数器的接口:updateCounter()、updateMultiCounters()

    [辅助更新]

    [BUG修复]

    • 1、修复离线文档的生成
    Source code(tar.gz)
    Source code(zip)
  • 2.5.2(Mar 25, 2019)

  • 2.5.0(Feb 25, 2019)

    PhalApi 2.5.0

    [主要更新]

    • 1、phalapi-buildtest脚本升级,优化单元测试代码生成
    • 2、NotORM底层包支持在批量插入inser_multi时使用IGNORE关键词,PhalApi-NotORM更新至2.3.0版本
    • 3、接口参数新增message配置,支持自定义友好的错误提示信息,并支持i18n国际翻译

    [辅助更新]

    • 1、七牛上传时支持文件名前缀配置 preffix
    • 2、新增扩展session 封装,由@Zhangzijing 提供
    • 3、在线接口文档界面美化
    • 4、添加默认的redis配置

    [BUG修复]

    • 1、修复在线文档数组默认值反序列化问题
    Source code(tar.gz)
    Source code(zip)
  • 2.4.2(Dec 2, 2018)

  • 2.4.0(Dec 1, 2018)

    PhalApi 2.4.0

    [主要更新]

    • 1、在线文档,样式优化,并添加接口搜索功能,方便查找

    [辅助更新]

    • 1、新增CORS跨域扩展,由@吞吞小猴 提供
    • 2、2.x文档完善,丰富数据库操作的说明及示例

    [BUG修复]

    • 1、分表策略下默认缺省表名再次获取时,因缓存击中而最终出现表_xxx不存在,bugfixed
    • 2、默认接口返回时,对于XML格式的输出进行object转字符串的报错修正
    Source code(tar.gz)
    Source code(zip)
  • 2.3.1(Oct 18, 2018)

  • 2.3.0(Oct 18, 2018)

    PhalApi 2.3.0

    [主要更新]

    [辅助更新]

    Source code(tar.gz)
    Source code(zip)
  • 2.2.3(Jun 30, 2018)

    PhalApi 2.2.3

    [辅助更新]

    [BUG修复]

    • 1、文件缓存的文件名增强唯一性,避免冲突碰撞,加上前缀
    • 2、解决接口参数如果设置正则表达式,不是必须参数情况下,依然要验证REGX的问题
    • 3、优化输入日志的时候,中文进行了编码,可读性较差问题
    Source code(tar.gz)
    Source code(zip)
  • 2.2.2(Mar 31, 2018)

    PhalApi 2.2.2

    [主要更新]

    • 1、JSON格式错误时,追加参数错误提示
    • 2、在线接口文档美化,添加顶部导航菜单,并添加友好的图标

    [辅助更新]

    • 1、迁移phalapi/apkAPK文件解包处理扩展,由 @喵了个咪 提供

    [BUG修复]

    • 1、单元测试兼容高版本的PHPUnit
    • 2、NotORM数据库查询失败时,修正空对象调用问题
    • 3、修复 接口详情页接口测试工具bug/新增多文件上传支持 @天未白
    Source code(tar.gz)
    Source code(zip)
  • 2.2.0(Jan 4, 2018)

    PhalApi 2.2.0

    [主要更新]

    • 1、内嵌二维码QrCode扩展,并添加生成二维码的示例接口服务Examples_QrCode.Png
    • 2、在线接口列表文档、在线接口详情文档,渲染时支持指定视图路径

    [辅助更新]

    • 1、界面更美化的在线接口文档扩展DocumentUI ,由 @xcalder 提供,参考示例
    • 2、新增生成二维码QrCode扩展,基于PHP QrCode实现。
    • 3、新增生成条形码barcode扩展,基于barcodegen实现。
    • 4、新增拼音转换pinyin扩展,基于overtrue/pinyin实现。
    • 5、迁移1.x扩展PhalApi-Image图像处理到phalapi-image,由 @吞吞小猴 提供
    • 6、新增图灵机器人接口Tuling123 扩展,由 @webx32 提供
    • 7、迁移短信扩展phalapi-sms,由 @吞吞小猴 提供
    • 8、增加极验验证码扩展,由 @吞吞小猴 提供

    [BUG修复]

    • 1、修复在线接口列表文档,相同类名和相同方法名重复问题

    [如何更新]

    修改composer.json文件中PhalApi的版本号,然后执行:composer update 命令即可。

        "require": {
            "phalapi/kernal": "2.2.*"
        }
    

    在本次版本更新中,需要特别感谢以下同学的努力与贡献(顺序不分先后): @吞吞小猴、@dogstar、@webx32。再次感谢,在开源的路上,@开源中国和大家一直以来对PhalApi的关注和肯定。

    PhalApi开源,依然在路上!

    Source code(tar.gz)
    Source code(zip)
  • 2.1.2(Nov 4, 2017)

    PhalApi 2.1.2 (2017-11-05发布)

    [主要更新]

    • 1、在线文档列表添加多级菜单,支持一个命名空间一个折叠栏 (@吞吞小猴前端支持)
    • 2、在线文档详情添加参数记忆功能,并支持全局同名参数共享数据
    • 3、在线接口文档,支持接口类或方法的隐藏,注释为@ignore
    • 4、在线详情文档,添加中文描述作为标题前缀
    • 5、数据库连接,默认添加sqlserver支持,type = sqlserver
    • 6、支持命名空间白名单独立配置
    • 7、Issue #22 服务白名单时,全局接口参数不需要再验证

    [辅助更新]

    [BUG修复]

    • 1、修复在线文档类名重复时有丢失显示
    • 2、出于安全考虑,仅当在调试模式下,正则匹配失败时才显示正则表达式
    • 3、在线接口详情文档,恢复文件上传功能
    • 4、在线接口详情文件,恢复在https协议下无法调试
    Source code(tar.gz)
    Source code(zip)
  • 2.1.1(Oct 28, 2017)

  • PhalApi-v1.4.2(Sep 2, 2017)

  • 2.0.2(Sep 2, 2017)

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

    [前言]

    大家好呀PhalApi又和小伙伴们见面了,经过了快半年的准备PhalApi2在今天终于正式发布了,如果PhalApi1.X版本是自行车的话,PhalApi2.X版本就是小汽车,能为开发者带来更加省心省力开发体验,最新的PhalApi2使用Composer进行包管理可以让大家享受到Composer带来的丰富功能,并且PhalApi2开发小组也将针对PhalApi2开发迁移相关扩展库,让大家以更低的成本来使用PhalApi2,当然PhalApi1.X版本的童鞋也不用担心,PhalApi的更新会兼容1.X版本继续迭代持续优化,但是推荐大家在项目中对PhalApi2进行尝试和使用为PhalApi2的发展提出你宝贵的建议,那么就来看看本次PhalApi有什么新的内容吧!

    PS:PhalApi团队主要以2.X版本为重心,相关更新也会同步到1.X版本,如不更新会有通知放出大家可以放心使用,本次PhalApi2.0.1对应1.4.2版本 PhalApi 2.x这全新的开发体验可以通过重构升级到V2.0.1版本,后续可以轻松使用Composer进行PhalApi版本升级 基于老版本开发的应用可以无缝升级到v1.4.2版本,直接覆盖核心文件PhalApi即可使用新版功能。

    [PhalApi2安装方式]

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

    $ composer create-project phalapi/phalapi
    

    [主要更新]

    1、PhalApi2全面发布 2、迁移View扩展到PhalApi 2.x 版本 3、迁移Redis扩展类库到PhalApi 2.x 版本 4、迁移扩展类库Task、FastRoute到PhalApi 2.x 版本 5、完善单元测试,将代码覆盖率从76%提升到91%。

    [功能性更新]

    1、Json格式和JsonP格式支持中文显示设置,以及其他Json选项配置 2、PhalApi_Curl部分代码优化,兼容PHP 5.3 3、调试模式下,追加返回框架版本号,方便定位解决问题 4、添加XML格式的响应返回 5、service参数支持缩写,即使用?s=Class.Action等效于?service=Class.Action,两者都存在时优先使用service参数 6、修改文件类型默认可以多选 根据选择文件是单张或多张,采取不同处理,兼容服务器端多文件上传处理方式 @Ederth

    [框架优化]

    1、修改优化内置Task扩展类库的语法问题 2、框架性能优化,请求默认接口服务,总执行时间从8,393 microsecs降到4,486 microsecs,内存峰值从1,619,544 bytes降到767,920 bytes,函数调用次数从701次降至345次,性能约提升了近一倍,不止是更快。详细Xhprof分析报告请见这里

    [BUG修复]

    1、修复文件上传时的Warning提示 2、分表的主键问题修复

    **π框架 - PhalApi交流群① : 421032344 ** **π框架 - PhalApi交流群② : 459352221 ** PS:如果你也喜欢PhalApi想为PhalApi出份力就加入到我们的队伍中吧

    相关链接: PhalApi在线文档:http://www.phalapi.net/wikis/ PhalApi免费下载:http://git.oschina.net/dogstar/PhalApi 在本次版本更新中,需要特别感谢以下同学的努力与贡献(顺序不分先后): @PhalApi2开发小组、@Ederth、@喵了个咪、@dogstar 再次感谢,开源的路上,@开源中国和大家一直以来对PhalApi的关注和肯定,如果你喜欢PhalApi也可以通過[其他方式]支持我們,谢谢! PhalApi开源,依然在路上!

    Source code(tar.gz)
    Source code(zip)
30 seconds of code Short PHP code snippets for all your development needs

30 seconds of code Short PHP code snippets for all your development needs Visit our website to view our snippet collection. Use the Search page to fin

30 seconds of code 2.5k Jan 14, 2022
FluxBB is a fast, light, user-friendly forum application for your website.

FluxBB 1.5 Readme About FluxBB is an open source forum application released under the GNU General Public Licence. It is free to download and use and w

FluxBB 453 Jan 16, 2022
A php API documentation generator, fork of Sami

Doctum, a PHP API documentation generator. Fork of Sami Curious about what Doctum generates? Have a look at the MariaDB MySQL Kbs or Laravel documenta

Code LTS 144 Jan 10, 2022
An API documentation generator

Sami: an API documentation generator WARNING: Sami is not supported nor maintained anymore. Feel free to fork. Curious about what Sami generates? Have

null 2k Jan 8, 2022
Generates documentation for your REST API from annotations

NelmioApiDocBundle The NelmioApiDocBundle bundle allows you to generate a decent documentation for your APIs. Migrate from 3.x to 4.0 To migrate from

Nelmio 2k Jan 10, 2022
Yii2 Annotations Generate API Document Extension

Generate online api document by code annotation for yii2 easily

Trevor 16 Dec 15, 2021
PHP 7.1 ready Smart and Simple Documentation for your PHP project

Smart and Readable Documentation for your PHP project ApiGen is the simplest, the easiest to use and the most modern api doc generator. It is all PHP

ApiGen 2.1k Jan 8, 2022
PHP 7.1 ready Smart and Simple Documentation for your PHP project

Smart and Readable Documentation for your PHP project ApiGen is the simplest, the easiest to use and the most modern api doc generator. It is all PHP

ApiGen 2.1k Apr 20, 2021
Learn how to implement the most important Design Patterns into your PHP application, uses PHP 8.1

Learn how to implement the most important Design Patterns into your PHP application. This project uses PHP 8.1. it has examples for each Pattern and an Article explaining how to use them step by step, their advantages, and disadvantages.

Gabriel Anhaia 122 Jan 12, 2022
Documentation Generator for PHP

phpDocumentor What is phpDocumentor? phpDocumentor is an application that is capable of analyzing your PHP source code and DocBlock comments to genera

phpDocumentor 3.4k Jan 17, 2022
Documentation generator for PHP Code using standard technology (SRC, DOCBLOCK, XML and XSLT)

phpDox phpDox is a documentation generator for PHP projects. This includes, but is not limited to, API documentation. The main focus is on enriching t

Arne Blankerts 580 Dec 31, 2021
Industrial-strength annotations for PHP

php-annotations Source-code annotations for PHP. Copyright (C) 2011-2015 Rasmus Schultz [email protected] https://github.com/php-annotations/php-anno

php-annotations 134 Nov 22, 2021
Source Code for 'PHP 8 Solutions' by David Powers

Apress Source Code This repository accompanies PHP 8 Solutions by David Powers (Apress, 2022). Download the files as a zip using the green button, or

Apress 4 Jan 11, 2022
PHP Developer Roadmap

This is PHP Developer Roadmap

TheCodeholic 1.2k Jan 12, 2022
Blazing fast macOS PHP development environment

Introduction Valet+ is a development environment for macOS. No Vagrant, no Docker, no /etc/hosts file. Go here for the valet+ documentation. Credits T

We Provide 1.5k Jan 12, 2022
⚙️ Web3 PHP CLI is a blazing fast blockchain server for local development.

Web3 PHP CLI is a blazing fast blockchain server for local development. This project is a work-in-progress. Code and documentation are currently under

Web3 PHP 121 Jan 11, 2022
A development tool for all your projects that is fast, easy, powerful and liberating

Lando A Liberating Dev Tool For All Your Projects The local development and DevOps tool trusted by professional developers across the galaxy. Free you

Lando 3.2k Jan 13, 2022
CleverStyle Framework is simple, scalable, fast and secure full-stack PHP framework

CleverStyle Framework is simple, scalable, fast and secure full-stack PHP framework. It is free, Open Source and is distributed under Free Public Lice

Nazar Mokrynskyi 149 Aug 12, 2021
Framework X is a simple and fast micro framework based on PHP

Framework X is a simple and fast micro framework based on PHP. I've created a simple CRUD application to understand how it works. I used twig and I created a custom middleware to handle PUT, DELETE methods.

Mahmut Bayri 2 Jan 19, 2022
Framework X – the simple and fast micro framework for building reactive web applications that run anywhere.

Framework X Framework X – the simple and fast micro framework for building reactive web applications that run anywhere. Quickstart Documentation Tests

Christian Lück 350 Jan 12, 2022
Fast and simple implementation of a REST API based on the Laravel Framework, Repository Pattern, Eloquent Resources, Translatability, and Swagger.

Laravel Headless What about? This allows a fast and simple implementation of a REST API based on the Laravel Framework, Repository Pattern, Eloquent R

Julien SCHMITT 4 Dec 20, 2021
Laravel api tool kit is a set of tools that will help you to build a fast and well-organized API using laravel best practices.

Laravel API tool kit and best API practices Laravel api tool kit is a set of tools that will help you to build a fast and well-organized API using lar

Ahmed Esa 36 Jan 5, 2022
Fast php framework written in c, built in php extension

Yaf - Yet Another Framework PHP framework written in c and built as a PHP extension. Requirement PHP 7.0+ (master branch)) PHP 5.2+ (php5 branch) Inst

Xinchen Hui 4.5k Jan 12, 2022
Yii 2: The Fast, Secure and Professional PHP Framework

Yii 2 is a modern framework designed to be a solid foundation for your PHP application. It is fast, secure and efficient and works right out of the bo

Yii Software 13.9k Jan 12, 2022
Fast and easy PHP framework

Español | English Fácil, rápido y en español (Or should I say fast and easy?) Bienvenidos a KumbiaPHP Framework Versión 1 Manual en construcción de la

KumbiaPHP Framework 256 Jan 2, 2022
A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast!

A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast! Condensed in a single ~65KB file

Bong Cosca 2.5k Jan 5, 2022
Woski is a fast and simple lightweight PHP Framework for building applications in the realm of the web.

Woski is a simple fast PHP framework for the Realm The Project Installation Clone the repository $ composer create-project clintonnzedimma/woski myApp

Clinton Nzedimma 17 Dec 16, 2021
Fast PHP framework made with very loose optional components.

Nimble is a super fast mini-framework for PHP built on top of optional loose components. Installation Clone the repository $ git clone [email protected]:

Neo 51 May 3, 2021