Существуют метрики измерения эффективности работы команды. Сначала вводим метрики измерения качества кода, потом измеряем как это сказалось на работе команды.
Там 7 классов и один интерфейс. Все эти классы обязательны для подключения. Запихнул я их в один класс не из-за увеличения производительности, а из за удобства масштабирования. Если все классы ядра лежат в одном файле, то можно создавать любую структуру папок сайта не боясь испортить пути к обязательным подключаемым классам. А все другие классы (которые будут позже) подключать вообще не требуется, фрэймворк их сам подключит где-бы они не лежали.
Не всё так просто как кажется. Ссылка тут для обеспечения рекурсивного array access (только для версии php от 5.3.4 и выше). Само по себе такое решение есть костыль, который наконец-то устранили в php 5.4
Вот это if (!isset($this->config[$var])) $this->config[$var] = null; нужно для того чтобы рекурсивный array access правильно работал в строгом режиме.
Это не критично в текущей реализации, т.к. метод route по хорошему должен вызываться один раз. К тому же в дальнейшем делегаты будут улучшены и более оптимизированы, это касается и метода route().
Не хочу вас снова расстраивать, но empty тоже не подходит. Второе выражение условия (&& $config['customLogMethod']) это по сути преобразование к булевому типу, что работает несколько иначе по сравнению с empty. См. подробнее тут.
Веб-программирование действительно отличается от десктопного. Конкретно в статье имеется в виду программирование веб-форм, подобно тому, как это происходит в ASP.NET (система контролов, каждый контрол — отдельный объект, подробнее тут). Также нечто похожее есть в Prado Framework.
Вот это if (!isset($this->config[$var])) $this->config[$var] = null; нужно для того чтобы рекурсивный array access правильно работал в строгом режиме.
Простые запросы будут выглядеть как-то так: