Add API to allow skeleton to customise the Application instance

This commit is contained in:
Toby Zerner 2016-05-21 20:31:42 +09:30
parent 9f00d8245c
commit 363cc4acb1

View File

@ -42,6 +42,11 @@ abstract class AbstractServer
*/ */
protected $config; protected $config;
/**
* @var callable[]
*/
protected $registerCallbacks = [];
/** /**
* @param null $basePath * @param null $basePath
* @param null $publicPath * @param null $publicPath
@ -128,6 +133,14 @@ abstract class AbstractServer
$this->config = $config; $this->config = $config;
} }
/**
* @param callable $callback
*/
public function register(callable $callback)
{
$this->registerCallbacks[] = $callback;
}
/** /**
* @return Application * @return Application
*/ */
@ -179,6 +192,11 @@ abstract class AbstractServer
$app->register('Flarum\Api\ApiServiceProvider'); $app->register('Flarum\Api\ApiServiceProvider');
$app->register('Flarum\Forum\ForumServiceProvider'); $app->register('Flarum\Forum\ForumServiceProvider');
$app->register('Flarum\Admin\AdminServiceProvider'); $app->register('Flarum\Admin\AdminServiceProvider');
foreach ($this->registerCallbacks as $callback) {
$callback($app);
}
$app->register('Flarum\Extension\ExtensionServiceProvider'); $app->register('Flarum\Extension\ExtensionServiceProvider');
} }