当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

PhalApi

轻量级PHP开源接口框架
授权协议 Apache License
开发语言 PHP
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 国产
投 递 者 何飞翰
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

PhalApi接口框架 / PhalApi API Framework

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

  • 1. Api+Domain+Model 其实这样的三层结构和java中的web+service+dao比较像,和我们平常所说的MVC开发模式也是非常想象。只是说web和api一个进行页面显示一个不进行页面显示这个区别,本博文主要着重讲一下这三层在Phalapi中分工是怎么样的,他们分别担当者什么样的角色,需要做什么样的事情。 1.1 Api层 为什么说Api层像java中的web层呢,因为他们有一

  • 前言 公司业务需要转学PHP,而PHP中一个功能强大且生态链完整的PHP接口框架 PhalAPI 值得大家去学习,本学习笔记持续更新! 虽然官方文档写的十分明白,以及CSDN中PhalAPI框架内容也少之又少。 因此,以自我踩坑为基础,提供一个更为精简的学习笔记,本学习笔记将会省略部分安装及简单操作。 接口服务请求 介绍:接口服务请求实际上就是 路由跳转,而在PhalAPI中我们该如何定义路由跳转

  • 今天将自己的聚合支付接口集成到了phal框架内,由于在phalapi框架内如何返回视图不知道,因此需要将原本的wap站点的sdk包转化为api资源。具体过程稍晚点记录,现在将phalapi框架内的数据库操作简单记录一下。 如何获取orm实例 在PhalApi中,全部数据库操作都要经过NotORM实例来进行,在PhalApi中获取NotORM实例,有两种方式:全局获取方式、局部获取方式。 全局获取

  • 前言 公司业务需要转学PHP,而PHP中一个功能强大且生态链完整的PHP接口框架 PhalAPI 值得大家去学习,本学习笔记持续更新! 虽然官方文档写的十分明白,以及CSDN中PhalAPI框架内容也少之又少。 因此,以自我踩坑为基础,提供一个更为精简的学习笔记,本学习笔记将会省略部分安装及简单操作。 内容 本期内容我们来学习一下,如何在PhalAPI框架上快速应用 ADM模式实现CURD ADM

  • #[PhalApi(π框架) - PHP轻量级开源接口框架 - V1.3.3](http://www.phalapi.net) PhalApi,简称π框架,专注于接口开发,致力让接口开发更简单。支持HTTP、SOAP和RPC协议,可用于快速搭建微服务、RESTful接口或web services,关注于测试驱动开发、领域驱动设计、极限编程、敏捷开发以及如何快速、稳定、持续交付有价值的接口服务。 在

  • 1.15.1 NotORM官网 这里使用了NotORM进行DB操作,具体的数据库操作使用文档请见NotORM官网:http://www.notorm.com 1.15.2 NotORM的优化 但为了更符合项目的开发,这里对NotORM的底层作了升级修改,以下为主要修改点和新的使用: (1)将原来返回的结果全部从对象改成数组 对原来的大部分使用无特别影响,可按原来的方式开发。主要目的是为了更方面处理

  • 接口响应与在线调试 对于接口响应,PhalApi默认使用了HTTP+JSON。通过HTTP/HTTPS协议进行通讯,返回的结果则使用JSON格式进行传递。正常情况下,当接口服务正常响应时,如前面的Hello World接口,可能看到以下这样的响应头部信息和返回内容。 HTTP/1.1 200 OK Content-Type: application/json;charset=utf-8 ...

  • 我们调用一个类方法时,一定要先把这个类所在的php文件include(require)进来,然后才能调用。 我们先来看初始化文件init.php: <?php /** * 统一初始化 */ // 定义项目路径 defined('API_ROOT') || define('API_ROOT', dirname(__FILE__) . '/..'); // 引入composer require

 相关资料
  • 本文向大家介绍轻量级javascript 框架Backbone使用指南,包括了轻量级javascript 框架Backbone使用指南的使用技巧和注意事项,需要的朋友参考一下 Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用。 借助Backbone 我们可以使用REST的方式来最小化客户端和服务器间的数据传输,

  • 本文向大家介绍前端轻量级MVC框架CanJS详解,包括了前端轻量级MVC框架CanJS详解的使用技巧和注意事项,需要的朋友参考一下 选择正确的库 创建一个JS APP没有好的工具是很有难度的,jQuery只是操作DOM的库,没有提供任何创建APP的基础,这就是为什么我们要一个类似CanJS的专门的库。 CanJS 是一个轻量级的MVC库,提供你创建一个JS APP所需的工具。 CanJS 是一个轻

  • 希望通过PhalApi,可以: 一来,支撑轻量级接口项目的快速开发; 二来,阐明如何更好地进行接口开发、设计和维护; 三来,分享优秀的编程思想、实用的工具和精益求精的技艺。

  • 问题内容: 是否有一个提供发布/订阅模式的Java轻量级框架? 一些理想的功能 支持泛型 向发布者注册多个订阅者 API主要是接口和一些有用的实现 完全不需要内存,持久性和事务保证。 我了解JMS,但这对我来说太过分了。发布/订阅的数据是文件系统扫描的结果,扫描结果被馈送到另一个组件进行处理,然后在将其馈给另一个组件之前进行处理,依此类推。 编辑:所有在同一过程中。bean的PropertyCha

  • 本文向大家介绍浅谈Android轻量级的数据缓存框架RxCache,包括了浅谈Android轻量级的数据缓存框架RxCache的使用技巧和注意事项,需要的朋友参考一下 请求网络数据是在安卓开发中使用最频繁的一个功能,网络请求的体验决定了用户对整个APP的感觉,因此合理地使用缓存对网络请求的数据进行处理极为重要。合理的进行缓存和网络请求,可以为APP带来更优秀的体验。图片的缓存有Picasso、Gl

  • 问题内容: 我一直在使用jQuery在基于Web的应用程序中完成整个AJAX魔术。但是,我来到了一个决定,我并不需要所有这些神奇功能jQuery有,除了它的AJAX功能(例如,,,和)。 您能推荐轻量级的跨浏览器AJAX库/框架(最大10 kb)吗? 问题答案: 您可以通过删除不需要的模块来缩小jQuery的大小,只需修改Makefile文件即可。