PHPackages                             gomdimapps/tools - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. gomdimapps/tools

ActiveLibrary[HTTP &amp; Networking](/categories/http)

gomdimapps/tools
================

A wrapper of utility tools (HTTP calls, IP lookup, etc.) for Laravel applications.

v1.1.0(1mo ago)028↓66.7%MITPHPPHP ^8.3CI passing

Since Jul 9Pushed 1mo agoCompare

[ Source](https://github.com/GomdimApps/Tools)[ Packagist](https://packagist.org/packages/gomdimapps/tools)[ RSS](/packages/gomdimapps-tools/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (2)Dependencies (14)Versions (4)Used By (0)

GomdimApps Tools
================

[](#gomdimapps-tools)

[![Tests](https://github.com/GomdimApps/Tools/actions/workflows/tests.yml/badge.svg)](https://github.com/GomdimApps/Tools/actions/workflows/tests.yml)[![Latest Version](https://camo.githubusercontent.com/40ef2ffdd85f3693d5a79a9d213bdf7776e758145a9cc3bf4a34a5801689b6c1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f676f6d64696d617070732f746f6f6c732e737667)](https://packagist.org/packages/gomdimapps/tools)[![License](https://camo.githubusercontent.com/d84816f2aa5f64ee625a348502208580a2f382f7acb8fe806565c89fd9f4979d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f676f6d64696d617070732f746f6f6c732e737667)](LICENSE)

A wrapper of utility tools for Laravel applications, built on top of Laravel's own components (`illuminate/http`, `illuminate/cache`, `illuminate/support`) instead of reinventing them.

Requirements
------------

[](#requirements)

- PHP 8.3, 8.4 or 8.5
- Laravel 12 or 13 (Laravel 10 and 11 are past their security-support window and are no longer supported; Laravel 13 support is best-effort until `pestphp/pest-plugin-laravel` adds support for it)

Installation
------------

[](#installation)

```
composer require gomdimapps/tools
```

The `ToolsServiceProvider` is auto-discovered by Laravel. If you want to customize the defaults, publish the config file:

```
php artisan vendor:publish --tag=tools-config
```

`RequestCall`
-------------

[](#requestcall)

A fluent wrapper around Laravel's `Http` facade to centralize HTTP calls.

```
use GomdimApps\Tools\RequestCall;

$call = RequestCall::make('https://api.example.com/users', 'POST')
    ->asJson()
    ->withToken($token)
    ->withData(['name' => 'Jane'])
    ->execute();

if ($call->isSuccessful()) {
    $user = $call->json();
}

// Full request/response/error snapshot, handy for logging
$debugData = $call->captureData();
```

Available methods include `withHeaders()`, `withUserAgent()`, `withCookies()`, `withProxy()`, `withoutVerifying()`, `withBasicAuth()`, `asForm()`, `acceptJson()`, `timeout()`, `withQuery()`, `buffer()` and `stream()`.

### Using a proxy

[](#using-a-proxy)

`withProxy()` accepts a single proxy URL or an array to split proxies per protocol:

```
use GomdimApps\Tools\RequestCall;

// Single proxy for all protocols
$call = RequestCall::make('https://api.example.com/users')
    ->withProxy('http://user:pass@proxy.example.com:8080')
    ->execute();

// Different proxies per protocol, plus a bypass list ("no")
$call = RequestCall::make('https://api.example.com/users')
    ->withProxy([
        'http' => 'http://proxy.example.com:8080',
        'https' => 'http://proxy.example.com:8080',
        'no' => ['localhost', '127.0.0.1'],
    ])
    ->withoutVerifying()
    ->execute();
```

`Ip`
----

[](#ip)

Resolves geolocation details for an IP address, with an automatic fallback provider and response caching.

```
use GomdimApps\Tools\Ip;

$details = Ip::getDetails('8.8.8.8');
// ['status' => 'success', 'country' => 'United States', ...]
```

You can also resolve the details for the current request straight from `RequestCall`:

```
use GomdimApps\Tools\RequestCall;

$details = RequestCall::getIp();
```

`Pix`
-----

[](#pix)

Builds a Pix "Copia e Cola" payload (EMV BR Code), including the CRC-16 checksum required by the spec.

```
use GomdimApps\Tools\Pix;

$payload = Pix::make(
    keyType: 'document',
    pixKey: '11222333000181',
    merchantName: 'Empresa Teste Ltda',
    merchantCity: 'Sao Paulo',
)
    ->amount(150.00)
    ->txId('PEDIDO123')
    ->build();
```

Supported `keyType` values: `document` (CPF/CNPJ, digits are stripped), `phone` (normalized to `+55` E.164), `email` and `random`. `amount()`, `txId()` and `description()` are optional — when `txId()` is omitted, the payload defaults to `***`, and when `amount()` is omitted, the amount field is left out entirely.

Configuration
-------------

[](#configuration)

`config/tools.php`:

```
return [
    'http' => [
        'timeout' => env('TOOLS_HTTP_TIMEOUT', 30),
    ],
    'ip' => [
        'cache_ttl' => env('TOOLS_IP_CACHE_TTL', 86400),
    ],
];
```

Testing
-------

[](#testing)

```
composer install
vendor/bin/pest
```

If you don't have PHP/Composer installed locally, run the test suite in Docker instead, isolated per PHP version (8.3, 8.4 and 8.5):

```
make test-8.3
make test-8.4
make test-8.5

# runs all three, one after another
make test-all
```

Each service builds its own image, installs dependencies and runs `vendor/bin/pest` inside the container.

License
-------

[](#license)

The MIT License (MIT). Please see the [LICENSE](LICENSE) file for more information.

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance92

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~9 days

Total

2

Last Release

39d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/716b7be447e7ec61c1953dffa035ec4f3dfd7f20706bbb728b2518e589aa0dfe?d=identicon)[GomdimApps](/maintainers/GomdimApps)

---

Top Contributors

[![GomdimApps](https://avatars.githubusercontent.com/u/81498379?v=4)](https://github.com/GomdimApps "GomdimApps (4 commits)")

---

Tags

httplaravelwrapperIPtools

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/gomdimapps-tools/health.svg)

```
[![Health](https://phpackages.com/badges/gomdimapps-tools/health.svg)](https://phpackages.com/packages/gomdimapps-tools)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.4M354](/packages/psalm-plugin-laravel)[api-platform/laravel

API Platform support for Laravel

58190.1k21](/packages/api-platform-laravel)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

80427.1M249](/packages/laravel-mcp)[propaganistas/laravel-disposable-email

Disposable email validator

6023.2M7](/packages/propaganistas-laravel-disposable-email)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k16.3M158](/packages/laravel-pulse)[defstudio/telegraph

A laravel facade to interact with Telegram Bots

818355.4k3](/packages/defstudio-telegraph)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
