getClasses() + ReflectionStubsSingleton::getReflectionStubs()->getInterfaces(); foreach (EntitiesFilter::getFiltered($allClassesAndInterfaces) as $class) { //exclude classes from PHPReflectionParser if (strncmp($class->name, 'PHP', 3) !== 0) { yield "class $class->name" => [$class]; } } } public static function classesWithInterfacesProvider(): ?Generator { foreach (EntitiesFilter::getFiltered( ReflectionStubsSingleton::getReflectionStubs()->getClasses(), fn (PHPClass $class) => empty($class->interfaces), StubProblemType::WRONG_INTERFACE ) as $class) { //exclude classes from PHPReflectionParser if (strncmp($class->name, 'PHP', 3) !== 0) { yield "class $class->name" => [$class]; } } } public static function classWithParentProvider(): ?Generator { $classesAndInterfaces = ReflectionStubsSingleton::getReflectionStubs()->getClasses() + ReflectionStubsSingleton::getReflectionStubs()->getInterfaces(); $filtered = EntitiesFilter::getFiltered( $classesAndInterfaces, fn ($class) => empty($class->parentInterfaces) && empty($class->parentClass), StubProblemType::WRONG_PARENT ); foreach ($filtered as $class) { yield "class $class->name" => [$class]; } } public static function finalClassesProvider(): ?Generator { $classesAndInterfaces = ReflectionStubsSingleton::getReflectionStubs()->getClasses() + ReflectionStubsSingleton::getReflectionStubs()->getInterfaces(); $filtered = EntitiesFilter::getFiltered( $classesAndInterfaces, null, StubProblemType::WRONG_FINAL_MODIFIER ); foreach ($filtered as $class) { yield "class $class->name" => [$class]; } } public static function readonlyClassesProvider(): ?Generator { $classes = ReflectionStubsSingleton::getReflectionStubs()->getClasses(); $filtered = EntitiesFilter::getFiltered( $classes, fn (PHPClass $class) => $class->isReadonly === false, StubProblemType::WRONG_READONLY ); foreach ($filtered as $class) { yield "class $class->name" => [$class]; } } } __halt_compiler();----SIGNATURE:----mcO5Ok5qAZDyFS0YGIyAj75hrbq0POrh5RDxbvbYJy9GV933ThgABYBjgFSmUBRGJy7LW/WAkWuAldZcXSd22t2sWPJiOpAU6WCGlqsDV+ZWNBNkqvjqp6JAVAPRhVi4+q0dhh5TFC3u1dnWP8fLba1tAKfxHxmt9wtIcnXfg1qLsO6NsBzMeUXRE/dykoSIYra0H02SSxfwJI4wdRQy8hhIdn5Y1m2f+BfGevIYwuosNXuTPsiWhPgP1KG8MgT7wsQQWJxGxHSzjNsSw07AqVtGnW/pSP9X3pnOFYBTrNVd+fHIEx6phJFz9lKx76q+f54DVdsddbRwExbFefEDm9MmlNetOkLlO8zYwjXFe4Ye+MRMnsa0KtQiwvGyoSLsZDLT0P93AKxMcu0jT5b9i/4nBZ53ZQO1r/6Fh7Lq2MhjBkGDbYbZU3rehuJgtjg7ediVPuMlM4YeHey++a1hL3Ens5FvFnItfXbqufWQBncnMQe3PjzgSRddB5sCeQLrKqG/BQKB6B1nsUHRyzzGTAfD3Rrk7iows53CI1S9SgkMgmTRNOdK/BoTL4wT7yup4/UjlDy5XexxziJxBO3vf1FQwSLkHSwaDEFS68PhCT0/3oVrnoXL+5+4hyTojILvTDlT6i3XfJIuk+FfwAA1WcCcokd4181o3KiETIStPn8=----ATTACHMENT:----NDE4NjkzNDEzODQyNjc0MyA1NjU1MzE1MTY4NzM4NDM1IDc4MDYyOTM4NzIyNjk1OTI=