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

PHP学习笔记——Phalapi开发app接口文章目录背景框架安装开发及调试工具我的第一个完整数据库接口配置数据库连接文件注册接口实例看看效果背景年前我结合小白接口和 vue 进行了开发 利用小白接口作为自己的应用后端支持

大家好,欢迎来到IT知识分享网。

背景

年前我结合小白接口和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,需要添加以下伪静态规则以便于接口请求。

<IfModule mod_rewrite.c> 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] </IfModule> 

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

在这里插入图片描述
在这里插入图片描述
主要命令为chmod -R a+rx *,chown -R www:www *

开发及调试工具

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增加一个注册接口,并写好备注以便系统自动生成接口文档。

<?php namespace App\Api;//声明命名空间 use PhalApi\Api;//引入框架类 use App\Domain\User as DomainUser;//引入domain层 / * 用户模块接口服务 */ class User extends Api { public function getRules() {//框架接收请求数据规则,框架根据下面的数组数据生成各个接口的参数文档 return array( 'register' => 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

<?php namespace App\Domain;//声明命名空间 use App\Model\User as ModelUser;//引入model层 class User { public function insert($newData) { $newData['post_date'] = date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']);//生成注册时间,数据库中对应字段记录用户注册时间 $model = new ModelUser();//实例化model层数据库操作对象 return $model->insert($newData);//调用model层的insert方法 } } 

在model层建立相应文件。

<?php / * Created by PhpStorm. * User: 14680 * Date: 2019/2/7 * Time: 22:01 */ namespace App\Model;//声明命名空间 use PhalApi\Model\NotORMModel as NotORM;//引入框架封装的数据库操作类库notorm class User extends NotORM { public function register($newData) { $user = $this->getORM(); // 在Model子类内,进行数据库操作前,先获取NotORM实例 $user->insert($newData);//调用notrom中封装的insert方法 return $user->insert_id(); } } 

看看效果

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

在这里插入图片描述
注册接口详情

在这里插入图片描述

试一下进行在线请求模拟

在这里插入图片描述
可看到如下返回结果,说明接口已经生效

在这里插入图片描述

看一下数据库的相应数据

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/137703.html

(0)
上一篇 2025-06-18 16:26
下一篇 2025-06-18 16:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信