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
Requires
- php: ^8.0
- psr/log: ^2.0|^3.0
Requires (Dev)
- phpunit/phpunit: ^10.0|^11.0
Suggests
- illuminate/support: Required for Laravel ServiceProvider and Facade integration (^10.0|^11.0)
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.