Не удается отловить ошибку, если расширенный класс отсутствует - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь перебрать все загруженные классы, которые расширяют определенный класс. Но is_subclass_of выдает ошибку «Класс не найден», если причиной является расширенный класс, который не был загружен автоматически - и я не могу его перехватить.

        $allClasses = 'vendor/composer/autoload_classmap.php';
            $classes=[];
            foreach ($allClasses as $name => $file){
                try {

                    if (is_subclass_of($name,'mynamespace\\project\\src\\models\\BaseWintypeModel'))
                    {
                        $classes[] = $name;
                    }

                }
                catch(\Throwable $e)
                {
                    echo "caught exception";
                }
            }

Ошибка, например,

PHP Fatal Error – yii\base\ErrorException
Class 'Illuminate\Support\ServiceProvider' not found
1. in /www/fresh/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php

, потому что

class ServiceProvider extends \Illuminate\Support\ServiceProvider
...