mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-18 01:57:13 +00:00
Fix integration tests by fixing a PHP 8.1+ deprecation warnings in ReflectionClass (#1351)
* gha: get more insights when/if logs exist * Better handle cases when we can receive a concrete instance The problem with `null` being passed to `ReflectionClass` was always there but in PHP 8.1+ it triggers a deprecation warnings. Since having `null` in `$concrete` doesn't make sense to reflect anything anyway, we just throw a custom exception (which gets caught a couple lines below) and just carry on. When using `-v` this can be seen, example: ``` $ ./artisan ide-helper:meta -v Cannot make 'Faker\Generator': Class 'Faker\Provider\en_US\Barcode' not found. Cannot make 'Illuminate\Contracts\Auth\Authenticatable': Class does not exist Cannot make 'cache.psr6': Class 'Symfony\Component\Cache\Adapter\Psr16Adapter' not found. Cannot make 'csp-nonce': Class 'Wza3Mf4CXIvCkcp9K3boMUGJoK6S9maO' not found. Cannot make 'env': Class 'local' not found. Cannot make 'filesystem.cloud': Disk [s3] does not have a configured driver. Cannot make 'redis.connection': Redis connection [default] not configured. A new meta file was written to .phpstorm.meta.php ``` * gha: make sure to run meta with -v to see all output Helps when debugging things * Add CHANGELOG.md entry
This commit is contained in:
@@ -13,6 +13,7 @@ namespace Barryvdh\LaravelIdeHelper\Console;
|
||||
|
||||
use Barryvdh\LaravelIdeHelper\Factories;
|
||||
use Illuminate\Console\Command;
|
||||
use RuntimeException;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
@@ -95,6 +96,11 @@ class MetaCommand extends Command
|
||||
|
||||
try {
|
||||
$concrete = $this->laravel->make($abstract);
|
||||
|
||||
if ($concrete === null) {
|
||||
throw new RuntimeException("Cannot create instance for '$abstract', received 'null'");
|
||||
}
|
||||
|
||||
$reflectionClass = new \ReflectionClass($concrete);
|
||||
if (is_object($concrete) && !$reflectionClass->isAnonymous()) {
|
||||
$bindings[$abstract] = get_class($concrete);
|
||||
|
||||
Reference in New Issue
Block a user