// Define:
class MyModule {
use \Webfan\ngModuleTrait;
}
$module = new MyModule ;
$module ->controller([function MyControllerName($injected1, $injected2){ ... }], $injectFrom1, $injectFrom2);
$module ->config([function ($injected1, $injected2){ ... }], $injectFrom1, $injectFrom2);
$module ->myCustomBlockName([function ($injected1, $injected2){ ... }], $injectFrom1, $injectFrom2);
//Call/Invoke:
$module($MyBlocksProcessorCallable, 'config');
//...calls...
\call_user_func_array($MyBlocksProcessorCallable, ['config',$module, array $ModuleBlocks);
... on each 'config' block/config-block-callable.
You can dynamically use any not declared block-name.
Status: No tests passed/tested.