Skip to content

wachey-com/wachey-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Wachey API PHP Client

A lightweight PHP client for sending error reports to the Wachey API, compatible with both Laravel and vanilla PHP projects.

Version: 1.0.0 License: MIT Repository: https://github.com/wachey-com/wachey-php

Features

  • Laravel support via config() / env().
  • Non-Laravel support with automatic loading of a .env file in public_html.
  • Zero external dependencies (uses native cURL).
  • Simple integration with exception handlers.

Installation

composer require wachey/api

Configuration

In Laravel

  1. In your config/services.php, add:

    'wachey' => [
        'key'      => env('WACHEY_API_KEY'),
        'password' => env('WACHEY_PASSWORD'),
    ],
  2. Make sure your .env includes:

    WACHEY_API_KEY=your_api_key
    WACHEY_PASSWORD=your_password

In Vanilla PHP

  • Place a .env file in your public_html/ directory containing:

    WACHEY_API_KEY=your_api_key
    WACHEY_PASSWORD=your_password
    APP_ENV=production
  • If your document root differs, define a constant before using the client:

define('PUBLIC_HTML_PATH', '/path/to/your/public_html'); ```

Usage

Automatic Exception Reporting in Laravel

In Laravel 9+ inside app/Exceptions/Handler.php, register a reportable callback:

use Wachey\Api\Report;

public function register(): void
{
    $this->reportable(function (Throwable $e) {
        Report::error(
            $e->getMessage(),
            $e->getFile(),
            $e->getLine(),
            request()->ip(),
            optional(Auth::user())->email
        );
    });
}

Manual Reporting

Wrap your code in a try-catch and call Report::error():

use Wachey\Api\Report;

try {
    // code that may throw
} catch (\Exception $e) {
    Report::error(
        $e->getMessage(),
        $e->getFile(),
        $e->getLine(),
        $_SERVER['REMOTE_ADDR'] ?? null,
        'optional_user_identifier'
    );
}

API

public static function error(
    ?string $error   = null,
    ?string $path    = null,
    ?int    $line    = null,
    ?string $ip      = null,
    ?string $user    = null
);
  • Returns: \stdClass on success, or false if the JSON response is invalid.
  • Throws: \RuntimeException on cURL errors or missing .env.

Env Loading Logic

  • Laravel: Uses config('services.wachey.key') and config('services.wachey.password').
  • Non-Laravel: Parses .env under public_html via putenv() and $_ENV.

Adjust the path as needed via a PUBLIC_HTML_PATH constant if you don’t use public_html.

Project Structure

src/
└── Report.php
composer.json
README.md
LICENSE

License

This project is released under the MIT License. See LICENSE for details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages