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
- Laravel support via
config()/env(). - Non-Laravel support with automatic loading of a
.envfile inpublic_html. - Zero external dependencies (uses native cURL).
- Simple integration with exception handlers.
composer require wachey/api-
In your
config/services.php, add:'wachey' => [ 'key' => env('WACHEY_API_KEY'), 'password' => env('WACHEY_PASSWORD'), ],
-
Make sure your
.envincludes:WACHEY_API_KEY=your_api_key WACHEY_PASSWORD=your_password
-
Place a
.envfile in yourpublic_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'); ```
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
);
});
}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'
);
}public static function error(
?string $error = null,
?string $path = null,
?int $line = null,
?string $ip = null,
?string $user = null
);- Returns:
\stdClasson success, orfalseif the JSON response is invalid. - Throws:
\RuntimeExceptionon cURL errors or missing.env.
- Laravel: Uses
config('services.wachey.key')andconfig('services.wachey.password'). - Non-Laravel: Parses
.envunderpublic_htmlviaputenv()and$_ENV.
Adjust the path as needed via a PUBLIC_HTML_PATH constant if you don’t use public_html.
src/
└── Report.php
composer.json
README.md
LICENSE
This project is released under the MIT License. See LICENSE for details.