Можно не распространять один способ на все либы.
1. Одно из достоинств пакетов в других языках, это распределение библиотек по пространствам имен. В php это невозможно, хотя есть
надежда на лучшее. В php для достижения подобия данного эффекта обычно приходится извращаться с именами, в самом распространенном случае — давать им префиксы. Не всегда это удобно, но часть библиотек можно реализовать данным образом.
2. Наиболее быстрый и гибкий, в плане расположения файлов и классов в них, способ — держать, обновляемый вручную конфиг. Здесь можно и к именам файлов не привязываться и несколько связанных классов/интерфейсов хранить в одном файле. Не всегда может быть удобно при частом добавлении/удалении библиотек, но базовую структуру классов можно держать в нем.
3. Динамическая индексация с кешированием. Здесь мне все-таки кажется более практичным подход, поиска конкретного файла по запросу конкретного класса. Несколько file_exists() с учетом кеша ФС вряд ли будут сильно тормозить. А ждать 30 минут, пока там все обновиться не слишком, имхо, удобно.