open($file); return $arh_reader; } } } // не найден подходящий обработчик throw new \Exception( "Для расширения {$ext} не найден подходящий распаковщик" ); } protected function isHandableExtension( $ext ){ $this->setHandleExtension( ); return (bool) array_search( $ext, $this->handleExtension); } protected function setHandleExtension( ){ if ( !$this->handleExtension ) { foreach (get_declared_classes() as $class) { if (is_subclass_of( $class, ArchiveReader::class )) $this->handleExtension[] = $class::getExtension(); } } } public function getHandleExtension( ){ return $this->handleExtension; } }