Giter Club home page Giter Club logo

apic

读音:派框架,官网: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接口文档、实时更新。

目录结构

./phalapi
├── README.md # 简介
├── bin # 脚本目录
├── config # 配置目录
│   ├── app.php # 应用配置
│   ├── dbs.php # 数据库配置
│   ├── di.php # 依赖服务配置
│   └── sys.php #系统配置
├── data # 数据库
│   └── phalapi.sql # 数据库安装时的文件
├── language # 翻译包
├── public # 对外访问的目录
│   ├── docs # 离线生成的HTML接口文档
│   ├── docs.php # 在线版接口文档访问入口
│   ├── index.php
│   ├── init.php # 全局初始化文件
│   ├── static # 静态资源
│   ├── uploads # 上传目录(需要有写入权限)
│   └── phalapi_logo.png # logo图片
├── runtime # 运行目录
│   ├── cache # 文件缓存
│   └── log # 文件日志
├── sdk # SDK包
├── src # 项目源代码,非常重要
│   ├── app # 接口源代码(遵循ADM模式)
│   │   ├── Api # 放置接口源代码,相当于控制器层
│   │   ├── Common # 公共代码目录,放置工具等
│   │   ├── Domain # 领域业务层,负责业务逻辑和处理
│   │   ├── functions.php # 公共函数库
│   │   └── Model # 数据源层,负责数据持久化存储及操作
│   └── view # 页面模板目录(如接口文档)
├── tests # 单元测试
└── vendor # composer包,不需要手动修改,通过composer install/update可进行安装和更新

翻译

修改./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类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。

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

dogstar's Projects

barcode icon barcode

PhalApi 条形码扩展,基于barcodegen实现。

cli icon cli

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

fast-route icon fast-route

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

id-card-of-china icon id-card-of-china

🆔一个基于「公民身份号码」规则获取身份证号码中包含的基础信息组件(PHP)

kernal icon kernal

PhalApi 2.0 框架核心部分,基于composer。

material-design-avatars icon material-design-avatars

Create material deisgn avatars for users just like Google Messager. It may not be unique but looks better than Identicon or Gravatar.

meet icon meet

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

notorm icon notorm

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

okayapi-demo icon okayapi-demo

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

pay icon pay

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

phalapi icon phalapi

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

phalapi-iview-admin icon phalapi-iview-admin

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

phalapi-library icon phalapi-library

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

phalapi-pro icon phalapi-pro

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

phalapi2 icon phalapi2

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

phpmailer icon phpmailer

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

phprpc icon phprpc

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

pinyin icon pinyin

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

pinyin-1 icon pinyin-1

:cn: 基于词库的中文转拼音优质解决方案

qiniu icon qiniu

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

qrcode icon qrcode

PhalApi 二维码扩展,基于QRCode实现。

task icon task

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.