加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用什么PHP轻框架搭建RESTful API 服务好

发布时间:2022-11-16 17:34:14 所属栏目:PHP教程 来源:互联网
导读: 一. 起源
前几天在准备为一个项目搭建api服务的时候还在纠结选哪个框架好,因为之前一直使用的是zentaoPHP,但是觉得这个框架用来搭api服务似乎不是特别好,但是由于项目时间比较赶,还是选

一. 起源

前几天在准备为一个项目搭建api服务的时候还在纠结选哪个框架好,因为之前一直使用的是zentaoPHP,但是觉得这个框架用来搭api服务似乎不是特别好,但是由于项目时间比较赶,还是选择这个框架,花了两三天写好了大部分api。

使用完这个框架觉得实在变扭,准备打算换个框架重构一下,在选型上我主要有几点考虑

不要太过臃肿的框架。可以裁剪模块,以提升效率。性能要好。二. 遇上lumen

这两天下班利用空余时间搜索了目前较好搭建api服务的框架,调研了slim、YII2.0、phalapi、lumen等等各有好有坏,但是个人觉得slim、lumen较为适合搭建rest api服务,目前ag使用的框架便是slim,两者有相似之处,两者相比个人觉得lumen更为合适。

Lumen 是一个由 Laravel 组件搭建而成的微框架php轻框架,Laravel在国外的市场份额是第一,文档全面细致,虽然在国内似乎并不是最受欢迎的。

lumen 可以使用composer安装详情可以查看官网文档 安装lumen

三. 主要模块使用说明

APP_ENV=local
APP_DEBUG=true
APP_KEY=
APP_TIMEZONE=UTC
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=app
DB_USERNAME=root
DB_PASSWORD=xxxxxx
CACHE_DRIVER=memcached
QUEUE_DRIVER=sync

$app->get('/hello', function () use ($app){
    return ['welcome to' => 'hello system'];
});
$app->get('/user/getByID', '[email?protected]');
$app->delete('/user/delete', '[email?protected]');
$app->post('/user/create', '[email?protected]');
$app->put('/user/update', '[email?protected]');

php轻框架_php框架中的t框架_php框架排行

select

示例1:单个查询
$result = app('db')->table(TABLE_USER)
            ->where('id',$id)
            ->get();

示例2:列表查询
    public function getList($page,$pageSize,$search = '')
    {
        $users = app('db')->table(COUPON_TO_PROJECT)->select("*");
        if ($search) {
            $users->where('name', 'like', '%' . $search . '%');
        }
        $users->skip(max(0, $pageSize * ($page - 1)));
        $users->take($pageSize);
        $data['page']     = $page;
        $data['pageSize'] = $pageSize;
        $data['total']    = $users->count();
        $data['list']     = $users->get()->all();
        return $data;
    }

在Laravel Eloquent 模型返回的结果集中,我们可能要判断取出的结果集是否为空,但我们发现直接使用 is_null 或 empty 是无法判段它结果集是否为空的。

var_dump 之后我们很容易发现,即使取到的空结果集, Eloquent 仍然会返回 Illuminate\Database\Eloquent\Collection 对象实例。

其实,Eloquent 已经给我们封装几个可以用来判断的方法。

//不为空则

php框架中的t框架_php轻框架_php框架排行

if ($result->first()) { } if (!$result->isEmpty()) { } if ($result->count()) { }

insert

使用insertGetId()方法可以返回最后插入的ID,若不需返回最后插入的ID insert()即可

        $lastInsertID = app('db')->table(TABLE_USER)->insertGetId([
                'account'  => 'zhangshan',
                "password" => '123456',
            ]);

update

$effect = app('db')->table(TABLE_USER)
            ->where('id', '=', $id)
            ->update($data);

delete

$result = app('db')->table(TABLE_USER)
            ->where('id', '=', $id)
            ->delete();

四. 缓存

.env配置文件里配置CACHE_DRIVER=redis,并配置好连接redis的相关信息

app('cache')->put('key','value',过期时间);

app('cache')->get('key');

五. 几个框架的demo github地址Slim ()zentaoPHP ()Lumen ()

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!