laravel-telescope-toolbar icon indicating copy to clipboard operation
laravel-telescope-toolbar copied to clipboard

Error when using with Telescope on a dev-only env

Open Braunson opened this issue 4 years ago • 6 comments

I've installed Telescope and set it up to only register and be used on the dev environment, no problems there.

The issue is when I install this Toolbar and publish the config, when running composer install on a non-dev env, it throws a Facade error.

Digging into things, the cause is the config references Horizon classes Laravel\Telescope\EntryType in the collectors array in the toolbar config file that's published.

Any ideas on a way around this for a local only environment?

I am only loading Telescope and Toolbar packages on the local environment in AppServiceProvider.php@register

if ($this->app->isLocal()) {
    // Laravel Telescope
    $this->app->register(\Laravel\Telescope\TelescopeServiceProvider::class);
    $this->app->register(TelescopeServiceProvider::class);

    // Laravel Telescope Toolbar
    $this->app->register(\Fruitcake\TelescopeToolbar\ToolbarServiceProvider::class);
}

Error

[2020-06-25 17:32:02] production.ERROR: Class 'Laravel\Telescope\EntryType' not found {"exception":"[object] (Error(code: 0): Class 'Laravel\\Telescope\\EntryType' not found at /home/vagrant/project/config/telescope-toolbar.php:97)
[stacktrace]
#0 /home/vagrant/project/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php(72): require()
#1 /home/vagrant/project/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php(39): Illuminate\\Foundation\\Bootstrap\\LoadConfiguration->loadConfigurationFiles()
#2 /home/vagrant/project/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(230): Illuminate\\Foundation\\Bootstrap\\LoadConfiguration->bootstrap()
#3 /home/vagrant/project/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(310): Illuminate\\Foundation\\Application->bootstrapWith()
#4 /home/vagrant/project/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(127): Illuminate\\Foundation\\Console\\Kernel->bootstrap()
#5 /home/vagrant/project/artisan(37): Illuminate\\Foundation\\Console\\Kernel->handle()
#6 {main}

Braunson avatar Jun 25 '20 17:06 Braunson

Did you put in in your require-dev section?

barryvdh avatar Jun 26 '20 04:06 barryvdh

@barryvdh Yes, same with Laravel Horizon which it's config doesn't seem to complain about missing classes.

The only "workaround" to get it not to complain was to remove the published config for the toolbar, but that's not necessarily ideal.

Braunson avatar Jun 27 '20 18:06 Braunson

It's a bit hacky, but I was able to workaround this issue, without deleting the published config by adding the following to the top of my config/telescope-toolbar.php file:

<?php

use Laravel\Telescope\EntryType;

// Add this conditional before the existing return statement
if (! class_exists(EntryType::class)) {
    return [];
}

return [
  //  ...
];

AndrewFeeney avatar Dec 10 '20 06:12 AndrewFeeney

Thx @AndrewFeeney

Oxicode avatar Mar 07 '21 02:03 Oxicode

@barryvdh Can we expect an official fix for this? I can put in a PR for one..

Braunson avatar May 19 '22 21:05 Braunson

any update @Braunson @barryvdh

fh32000 avatar Sep 26 '22 16:09 fh32000