PHP学习笔记——Phalapi开发app接口

文章目录

    • 背景
    • 框架安装
    • 开发及调试工具
    • 我的第一个完整数据库接口
      • 配置数据库连接文件
      • 注册接口实例
      • 看看效果

背景

年前我结合小白接口和vue进行了开发,利用小白接口作为自己的应用后端支持。同时我一直在寻找一个合适的PHP框架,作为api后台,我对比了几款主流框架,laravel、tp、yaf和phalapi。最终还是觉得phalapi是最适合我的项目的后端的,当然也有小白接口的原因,用过小白接口对phalapi自然更熟悉一点。

今天这篇笔记主要记录以下知识点:phalapi的安装部署、一个完整的数据库操作的接口、phpstorm安装和服务器同步设置及postman安装。

框架安装

我安装的是最新的2.4.2版本,采用composer安装,composer在我安装宝塔面板时已经带上了,因此可以直接cd项目目录下使用如下命令:composer create-project phalapi/phalapi等待几分钟即可。

我的websever是apache,需要添加以下伪静态规则以便于接口请求。


    RewriteEngine on
    RewriteBase /

    RewriteCond %{HTTP_HOST} ^dev.phalapi.net$

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_URI} !^/phalapi/public/
    RewriteRule ^(.*)$ /phalapi/public/$1
    RewriteRule ^(/)?$ index.php [L]

由于在ssh端口我用的是root用户,因此访问默认接口请求时出现了权限不足的报错提示,使用如下命令解决更改项目目录及文件权限和所有者为www。

在这里插入图片描述
PHP学习笔记——Phalapi开发app接口_第1张图片
主要命令为chmod -R a+rx *,chown -R www:www *

配置完成后再次访问默认接口,不再报错,说明框架已安装成功。
PHP学习笔记——Phalapi开发app接口_第2张图片

开发及调试工具

phpstorm是一款专门为php开发者而生的轻量IDE,最方便的是自动与远程服务器对比更新的功能。安装过程不赘述,简单记录一下远程同步的配置。

首先在服务器开启一个ftp绑定服务器项目根目录,然后在phpstorm中,进行以下步骤:

  • 第一步,打开同步配置

  • 二步,添加服务器链接配置

  • 第三步,设置 IP、账户密码等服务器链接配置

  • 进一步配置项目根目录,并完成配置

    此时,phpstorm便会将本地的文件与服务器进行实时同步了,更方便部署远端项目。

postman是一款专门调试api的工具,有谷歌浏览器插件版,也有windows下的exe版,安装及使用单独开文记录。

我的第一个完整数据库接口

phalapi框架采用的是ADM结构,即Api、Domain(业务逻辑层)、Model(数据操作层),独立写一个完整的添加数据的接口(这里以注册接口为例)能增强对这种结构的理解。

配置数据库连接文件

在开始之前我们先要配置好数据库连接文件,文件位置在./config/dbs.php,默认配置为

return array(
    /**
     * DB数据库服务器集群
     */
    'servers' => array(
        'db_master' => array(                         //服务器标记
            'host'      => '127.0.0.1',             //数据库域名
            'name'      => 'phalapi',               //数据库名字
            'user'      => 'root',                  //数据库用户名
            'password'  => '',                      //数据库密码
            'port'      => 3306,                  //数据库端口
            'charset'   => 'UTF8',                  //数据库字符集
        ),
    ),

    /**
     * 自定义路由表
     */
    'tables' => array(
        //通用路由
        '__default__' => array(
            'prefix' => 'tbl_',
            'key' => 'id',
            'map' => array(
                array('db' => 'db_master'),
            ),
        ),
    ),
);

在数据库中建立相应的数据表,注意前缀要和这里的prefix相同,如果不同则需要手动建立model层与数据表的联系。

注册接口实例

首先我们在默认应用模块app下的User.php增加一个注册接口,并写好备注以便系统自动生成接口文档。

 array(
                'username' => array('name' => 'username', 'require' => true, 'min' => 1, 'max' => 50, 'desc' => '用户名'),
                'password' => array('name' => 'password', 'require' => true, 'min' => 6, 'max' => 20, 'desc' => '密码'),
            ),
        );
    }
/**
     * 注册接口
     * @desc 根据账号和密码进行注册操作
     *
     * @return int id 用户注册ID
     */
    public function register() {
        $rs = array();//返回类型尽量为可拓展类型的,如数组、对象

        $newData = array(
            'username' => $this->username,
            'password' => $this->password,
    );

        $domain = new DomainUser();//实例化domain层的对象

        $id = $domain->insert($newData);//调用domain层的insert方法并接收返回数据

        $rs['id'] = $id;
        return $rs;
    }
} 

其后完善domain层的文件,文件位置为app/domain/User.php

insert($newData);//调用model层的insert方法
    }
}

在model层建立相应文件。

getORM();  // 在Model子类内,进行数据库操作前,先获取NotORM实例
        $user->insert($newData);//调用notrom中封装的insert方法
        return $user->insert_id();
    }
}

看看效果

框架自动生成的接口文档在public/docs.php下,还提供了方便的在线调试功能。

PHP学习笔记——Phalapi开发app接口_第3张图片
注册接口详情

PHP学习笔记——Phalapi开发app接口_第4张图片

试一下进行在线请求模拟

PHP学习笔记——Phalapi开发app接口_第5张图片
可看到如下返回结果,说明接口已经生效

PHP学习笔记——Phalapi开发app接口_第6张图片

看一下数据库的相应数据

在这里插入图片描述
第一条接口开发完成!

你可能感兴趣的:(自学笔记)