'Mock:val1', 'param4' => 'Mock:val4' ]; protected static $__DEFINE_propAsp = [ 'param1' ]; protected $param1 = NULL; protected $param2 = NULL; protected $param3 = NULL; protected $param4 = NULL; protected $param5 = NULL; } CLASS MockDeep EXTENDS \ILLI\Core\Mock { protected static $__DEFINE_propCom = [ 'param1', 'param2' ]; protected static $__DEFINE_propDef = [ 'param1' => 'MockDeep:val1', self::DI_CLASS => [ 'baz' => __CLASS__, 'alice' => __CLASS__, 'tiffany' => __CLASS__, ] ]; protected static $__DEFINE_propAsp = [ 'param1' => false, 'param4' ]; } CLASS MockDeepDeep EXTENDS \ILLI\Core\MockDeep { protected static $__DEFINE_propCom = [ 'param1', 'param2' ]; protected static $__DEFINE_propDef = [ 'param1' => 'MockDeepDeep:val1', 'param2' => 'MockDeepDeep:val2', 'param3' => 'MockDeepDeep:val3', 'param4' => 'MockDeepDeep:val4', self::DI_CLASS => [ 'baz' => __CLASS__, 'alice' => __CLASS__, 'foobar' => __CLASS__ ] ]; protected static $__DEFINE_propAsp = [ 'param1', 'param3' ]; protected function aspectableSetParam1($value) { $this->param1 = $value.':'.__METHOD__; } } $mdd = new MockDeepDeep( [ MockDeepDeep::DI_CLASS => ['baz' => 'foo', 'new' => 'append'], 'param1' => 'com1', 'param2' => 'com2', 'param3' => 'com3', // not defined in COM 'param4' => 'com4', // not defined in COM 'param5' => 'com5' // not defined in COM, no DEFAULT ] ); ?> object(ILLI\Core\MockDeepDeep)#6 (6) { ["param1":protected]=> string(48) "com1:ILLI\Core\MockDeepDeep::aspectableSetParam1" ["param2":protected]=> string(4) "com2" ["param3":protected]=> string(17) "MockDeepDeep:val3" ["param4":protected]=> string(17) "MockDeepDeep:val4" ["param5":protected]=> NULL ["__initConfig":protected]=> array(11) { ["ILLI\Core\I_Proto::DI_CLASS"]=> array(5) { ["baz"]=> string(3) "foo" ["alice"]=> string(22) "ILLI\Core\MockDeepDeep" ["tiffany"]=> string(18) "ILLI\Core\MockDeep" ["foobar"]=> string(22) "ILLI\Core\MockDeepDeep" ["new"]=> string(6) "append" } ["ILLI\Core\I_Proto::DI_RUN"]=> bool(true) ["ILLI\Core\I_Proto::DI_MAIN"]=> string(6) "__main" ["ILLI\Core\I_Proto::DI_DELEGATE"]=> array(0) { } ["ILLI\Core\I_Proto::DI_FILTER"]=> array(0) { } ["ILLI\Core\I_Proto::DI_METHOD"]=> array(0) { } ["ILLI\Core\I_Proto::DI_OBSERVER"]=> array(0) { } ["ILLI\Core\I_Proto::DI_METHOD_PROTO"]=> array(0) { } ["ILLI\Core\I_Proto::DI_SIGNAL"]=> array(0) { } ["ILLI\Core\I_Proto::DI_TO"]=> array(2) { ["string"]=> string(8) "toString" ["array"]=> string(7) "toArray" } ["param5"]=> string(4) "com5" } }