madeinua/browser-console

PHP to browser console logging with Laravel integration

Installs: 12

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/madeinua/browser-console

2.0 2026-01-22 16:53 UTC

This package is auto-updated.

Last update: 2026-01-23 08:11:12 UTC


README

A simple PHP class to log messages directly to the browser console. PSR-3 Logger Interface compatible with Laravel integration.

Requirements

  • PHP 8.0 or higher
  • PSR-3 Log (psr/log) ^2.0 or ^3.0

Installation

composer require madeinua/browser-console

Laravel Integration

Publish the configuration file (optional):

php artisan vendor:publish --tag=browser-console-config

Usage

Static Method (Quick Usage)

use BrowserConsole\BrowserConsole;

// Simple message
BrowserConsole::show('Hello World!');

// Output: console.log("Hello World!")

Context Interpolation

BrowserConsole::show('Hello {user}!', ['user' => 'Mark']);

// Output: console.log("Hello Mark!")

Including Timestamp

BrowserConsole::show('Hello', [], true);

// Output: console.log("[2024-01-01 15:00:00] Hello")

Different Data Types

// Arrays (displayed as expandable objects in browser console)
BrowserConsole::show(['name' => 'John', 'age' => 30]);
// Output: console.log({"name":"John","age":30})

// Numbers
BrowserConsole::show(42);
// Output: console.log(42)

// Booleans
BrowserConsole::show(true);
// Output: console.log(true)

PSR-3 Logger Interface

use BrowserConsole\BrowserConsole;

$logger = new BrowserConsole();

// Different log levels
$logger->emergency('System is down!');
$logger->alert('Alert message');
$logger->critical('Critical error');
$logger->error('Error occurred');
$logger->warning('Warning message');
$logger->notice('Notice');
$logger->info('Information');
$logger->debug('Debug info');

// With context interpolation
$logger->info('User {user} logged in', ['user' => 'John']);
// Output: console.info("User John logged in")

Laravel Facade

use BrowserConsole\Facades\Console;

Console::info('Information message');
Console::error('Error message');
Console::show(['data' => 'value']);

Laravel Models and Collections

The logger automatically handles Laravel models and collections:

use App\Models\User;

// Single model
BrowserConsole::show(User::find(1));

// Collection
BrowserConsole::show(User::all());

Enable/Disable Output

$logger = new BrowserConsole(enabled: false);
$logger->info('This will not output anything');

// Or toggle
$logger->setEnabled(true);
$logger->info('Now it outputs');

Laravel Configuration

In your .env file:

BROWSER_CONSOLE_ENABLED=true  # Set to false in production

Or in config/browser-console.php:

return [
    'enabled' => env('BROWSER_CONSOLE_ENABLED', true),
];

Output

All messages are output as JavaScript <script> tags:

<script>console.log("Hello World!")</script>
<script>console.info("Info message")</script>
<script>console.error("Error message")</script>

Testing

composer test

Or with PHPUnit directly:

./vendor/bin/phpunit

License

MIT License. See LICENSE for details.