- Добавлена возможность конфигурирования контейнера, можно отключить разные примочки
$configuration = new \PDIC\Configuration;
$configuration->isSupportForcedInjactionToProperty = false;
$configuration->isSupportInheritInterfaces = false;
$configuration->isSupportInheritTraits = false;
$container = new \PDIC\Container($map, [], $configuration);
В этом примере будет отключено наследование зависимостей по интерфейсу и трейтам, а также запрещено использовать насильно внедрять свойства в защищенные методы
Доступные опции конфигурирования
$isSupportInjectionToConstructor = true;
$isSupportInjectionToProperty = true;
$isSupportInjectionToSetter = false; // Отключена так как нет поддержки сеттеров
$isSupportForcedInjactionToProperty = true;
$isSupportInheritTraits = true;
$isSupportInheritInterfaces = true;
$isSupportInheritParents = true;
$isSupportInherit = true;
$isSupportMediator = true;
$isCheckPropertyExists = true;
С помощью этой конфигурации можно уменьшить затраты на внедрение зависимостей в 1.5 - 2 раза (отключив наследование, медиатор, насильное внедрение через свойства, внедрение через конструктор, проверку существования свойств)
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации