+ public function createApiKernel($dispatcher, $magicFunctionProvider) {
+ $dispatcher->addSubscriber(new \Civi\API\Subscriber\ChainSubscriber());
+ $dispatcher->addSubscriber(new \Civi\API\Subscriber\TransactionSubscriber());
+ $dispatcher->addSubscriber(new \Civi\API\Subscriber\I18nSubscriber());
+ $dispatcher->addSubscriber($magicFunctionProvider);
+ $dispatcher->addSubscriber(new \Civi\API\Subscriber\PermissionCheck());
+ $dispatcher->addSubscriber(new \Civi\API\Subscriber\APIv3SchemaAdapter());
+ $dispatcher->addSubscriber(new \Civi\API\Subscriber\WrapperAdapter(array(
+ \CRM_Utils_API_HTMLInputCoder::singleton(),
+ \CRM_Utils_API_NullOutputCoder::singleton(),
+ \CRM_Utils_API_ReloadOption::singleton(),
+ \CRM_Utils_API_MatchOption::singleton(),
+ )));
+ $dispatcher->addSubscriber(new \Civi\API\Subscriber\XDebugSubscriber());
+ $kernel = new \Civi\API\Kernel($dispatcher);
+
+ $reflectionProvider = new \Civi\API\Provider\ReflectionProvider($kernel);
+ $dispatcher->addSubscriber($reflectionProvider);
+
+ $kernel->setApiProviders(array(
+ $reflectionProvider,
+ $magicFunctionProvider,
+ ));
+