lyonstahl/soql-builder

SOQL 构建器,简化了从 Salesforce 数据库检索数据时构建复杂查询的过程

1.0.3 2024-04-04 17:14 UTC

This package is auto-updated.

Last update: 2024-09-10 15:21:28 UTC


README

SOQL 构建器,简化了从 Salesforce 数据库检索数据时构建复杂查询的过程。

安装

请确保您已安装 composer,然后运行以下命令

composer require lyonstahl/soql-builder

这将从您的 vendor 文件夹中检索库及其依赖项。然后您需要使用相关的类,例如

use LyonStahl\SoqlBuilder\SoqlBuilder;

功能

  • 选择
  • 条件(WHERE)
  • 日期值条件
  • 分组条件语句
  • WHERE IN
  • WHERE NOT IN
  • 限制
  • 偏移量
  • ORDER BY

用法

Builder 有两个入口点,方便静态使用:SoqlBuilder::select()SoqlBuilder::from()。两种方法都返回一个 SoqlBuilder 实例。
在任何其他上下文中,您必须调用 addSelect()setFrom() 来添加 "SELECT" 和 "FROM" 语句。请参见下面的示例。

SoqlBuilder::select(['Id', 'Name', 'created_at'])
    ->setFrom('Account')
    ->where('Name', '=', 'Test')
    ->limit(20)
    ->orderBy('created_at', 'DESC')
    ->toSoql();

> SELECT Id, Name, created_at FROM Account WHERE Name = 'Test' ORDER BY created_at DESC LIMIT 20

SoqlBuilder::from('Account')
    ->addSelect(['Id', 'Name'])
    ->where('Name', '=', 'Test')
    ->orWhere('Name', '=', 'Testing')
    ->toSoql();

> SELECT Id, Name FROM Account WHERE Name = 'Test' OR Name = 'Testing'

SoqlBuilder::select(['Id', 'Name'])
    ->setFrom('Account')
    ->startWhere()
    ->where('Name', '=', 'Test')
    ->where('Testing__c', '=', true)
    ->endWhere()
    ->orWhere('Email__c', '=', 'test@test.com')
    ->toSoql();

> SELECT Id, Name FROM Account WHERE (Name = 'Test' AND Testing__c = true) OR Email__c = 'test@test.com'

需求

使用 Docker 开发

我们包含了一个 Dockerfile,以便于运行测试和调试代码。您必须已安装 Docker。以下命令将构建镜像并运行容器

  1. docker build -t lyonstahl/soql-builder --build-arg PHP_VERSION=8 .
  2. docker run -it --rm -v ${PWD}:/var/www/soql lyonstahl/soql-builder sh

使用 VSCode 中的 XDebug 进行调试

Docker 镜像已配置 XDebug。要使用 VSCode 调试代码,请按照以下步骤操作

  1. 在 VSCode 中安装 PHP 调试扩展

  2. 在 VSCode 中添加一个新的 PHP 调试配置

    {
        "name": "XDebug Docker",
        "type": "php",
        "request": "launch",
        "port": 9003,
        "pathMappings": {
            "/var/www/soql/": "${workspaceRoot}/"
        }
    }
    
  3. docker run -it --rm -v ${PWD}:/var/www/soql --add-host host.docker.internal:host-gateway lyonstahl/soql-builder sh

  4. 使用 'XDebug Docker' 配置在 VSCode 中开始调试。

测试

此库附带了 PHPUnit 用于开发。Composer 文件已配置了一些脚本,运行以下命令以运行测试

composer test