7.5. 代码封装

本教程最新版为 8.x,当前版本已放弃维护,请阅读最新版本!

代码封装

前面的的章节我们完成了商品列表的各项搜索功能,但是我们发现商品列表控制器十分臃肿,里面有大量的代码用于构建 Elasticsearch 的查询,为了让代码布局更合理,同时提高复用性,接下来我们要对 Elasticsearch 的查询做一个简单的封装。

1. 创建查询构造器

我们目前的查询还比较单一,没有必要写一个像 Laravel Query Builder 那种十分灵活的查询构造器,因此只需要做一些简单的封装即可。

首先我们创建一个 ProductSearchBuilder 类:

$ mkdir -p app/SearchBuilders
$ touch app/SearchBuilders/ProductSearchBuilder.php

app/SearchBuilders/ProductSearchBuilder.php

<?php
namespace App\SearchBuilders;

use App\Models\Category;

class ProductSearchBuilder
{
    // 初始化查询
    protected $params = [
        'index' => 'products',
        'type'  => '_doc',
        'body'  => [
            'query' => [
                'bool' => [
                    'filter'...

本文章首发在 LearnKu.com 网站上。

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0

暂无话题~