/lara-lens

Laravel package for display diagnostic (config, database, http connections...)

Primary LanguagePHPMIT LicenseMIT

LaraLens

CI/CD Github Actions GitHub last commit GitHub Release Date Packagist PHP Version Support

LaraLens

What

LaraLens is a Laravel artisan command to show you the current configuration of your application. It is useful to show in your terminal the status of:

  • some useful configuration variable;
  • the database connection;
  • the tables in the database;
  • the connection via HTTP request;
  • the server requirements (PHP version, PHP modules required and installed, Laravel version etc.).

LaraLens - diagnostic package for Laravel

Why

When I have a new Laravel Application deployed on the target server, usually I perform a list of commands in order to check the configuration, the connection to database, inspect some tables, the response of the web server. I tried to show more information in just one command. This is useful also when the installation of your Laravel application is on premises, and someone else takes care about the configuration. So, in this scenario usually, as developer, your first question is: "how is configured the application?".

Installation

You can install the package via composer:

composer require hi-folks/lara-lens

The Packagist page is: https://packagist.org/packages/hi-folks/lara-lens

Usage

php artisan laralens:diagnostic

Usage: control database connection

You can see Database Connection information, and you can choose the table to check, and the column used for the "order by" (default created_at):

php artisan laralens:diagnostic --table=migrations --column-sort=id

To take the last created user:

php artisan laralens:diagnostic --table=users --column-sort=created_at

To take the last updated user:

php artisan laralens:diagnostic --table=users --column-sort=updated_at

Usage: control the output

You can control the output via the show option. You can define:

  • config
  • connection
  • database
  • runtime
  • migration
  • php-ext
  • php-ini
  • all

The default for --show option (if you avoid specifying --show) is to display: config, connection, database, runtime, migration.

php artisan laralens:diagnostic --show=config --show=connection --show=database --show=runtime --show=migration

If you want to see only database information:

php artisan laralens:diagnostic --show=database

If you want to see a verbose output (with also PHP extensions and PHP INI values):

php artisan laralens:diagnostic --show=all

or better:

php artisan laralens:diagnostic --all

If you want to see only PHP extensions:

php artisan laralens:diagnostic --show=php-ext

If you want to see only PHP INI values:

php artisan laralens:diagnostic --show=php-ini

Usage: skip database connection and database diagnostics

If your Laravel application doesn't use the database, you can skip the database inspection with --skip-database option.

php artisan laralens:diagnostic --skip-database

Usage: show some oprating system information

You can show some operating system information like:

  • PHP script owner's UID
  • Current User
  • Operating System
  • Hostname
  • Release name
  • Machine Name
  • Version info

using "--show os" option or "--show all" option

php artisan laralens:diagnostic  --show os

Usage: change the style of output table

You can choose one of these styles via --style= option:

  • default
  • borderless
  • compact
  • symfony-style-guide
  • box
  • box-double

For example:

php artisan laralens:diagnostic --style=borderless

Usage: change the width of the output table

To use 120 characters (wide terminal), you can use --large option

php artisan laralens:diagnostic --large

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Usage as Web Page

LaraLens provides information with the command line via terminal as shown above. You have also the opportunity to see the information via your web browser. You can enable web view via the configuration.

Publish default configuration for LaraLens in your Laravel Application:

php artisan vendor:publish --provider="HiFolks\LaraLens\LaraLensServiceProvider" --tag="config"

After that,you will have a new configuration file in your config directory. The file is: config/lara-lens.php

Add LARALENS_WEB_ENABLED=on option to your .env file. You may also override the default parameters for LARALENS_PREFIX and LARALENS_MIDDLEWARE

# Wether Web Report should be enabled or not
LARALENS_WEB_ENABLED=on
# Path prefix in order to acess the Web Report via browser
LARALENS_PREFIX="laralens"
# Which middleware should be used when acessing the Web Report, separete more with ;
LARALENS_MIDDLEWARE="web;auth.basic"

For example, with the configuration above you would have enabled the web view (web-enabled parameter) under /laralens_test/ path and with the web and auth.basic middleware

return [
    'prefix' => env('LARALENS_PREFIX', 'laralens'), // URL prefix (default=laralens)
    'middleware' => explode(';', env('LARALENS_MIDDLEWARE', 'web')), // middleware (default=web) more separate with ;
    'web-enabled' => env('LARALENS_WEB_ENABLED', 'off') // Activate web view (default=off)
];

Web view configuration hint

LaraLens shows some internal configuration of your Laravel application, so I suggest you to disable it in a production environment. To disable LaraLens web view, make sure to remove LARALENS_WEB_ENABLED config from .env file or set it to off

LARALENS_WEB_ENABLED=off

Contributing

Please see CONTRIBUTING for details.

Submit ideas or feature requests or issues

Credits

Who talks about LaraLens

License

The MIT License (MIT). Please see License File for more information.