>>34102
Фреймворк состоит из пакетов. Пакеты делятся на выражающие собой какие-либо принципы (напр. единая точка входа в приложение, автозагрузка классов, ленивая загрузка классов пакета) и имплементацию этих, либо других принципов, в конкретном данном случае имеется в виду принцип автозагрузки классов.
В (условно) index.php я через require_once загружаю понравившийся мне пакет с classloader'ом и импортирую в него через $classloader->importPackages(array $packages) все остальные пакеты, которые могут мне потребоваться. Одно из условий использования classloader'a, который я загружаю - в том, чтобы все пакеты которые могут потребоваться обязательно прописывались ручками в importPackages. Это нужно для того чтобы при взгляде на index.php можно было понять с каким приложением имеешь дело. Например, используется ли единая точка входа и autoloading.
Проблема в том, что сам classloader имплементирует пакет classloader_autoloadable, который должен быть загружен до загрузки пакета с classloader'ом, а пакет classloader_autoloadable имплементирует стандарт описания пакета. В итоге вместо использования ленивого импорта пакетов через classloader я должен ручками прописывать require_once пакетов, которые попали в зависимость друг от друга, да еще и соблюдая порядок этих зависимостей, что и вызывает у меня лютый butthurt. Если же classloader не будет имплементировать classloader_autoloadable, то это будет сраная идеологически некорректная недоделка. Вот если бы classloader смог загрузиться, зарегистрировать себя через register_autoload(), а затем загрузить пакет classloader_autoloadable и прописать что он имплементирует этот пакет, проблема бы была решена. Надеюсь достаточно последовательно изложил происходящее.
> О каких тестах идет речь?
О юнит тестах, иначе:
function loadClass($className)
{
exit("Соси хуй, быдло. Твой интерфейс не может проверить ни правильность исполнения кода, ни даже возвращающееся значение. Впрочем, если тебя устроит одно лишь формальное совпадение имен функций в классах, то можешь пилить свои интерфейсы дальше, уёбок.");
}