mirror of
https://github.com/flarum/core.git
synced 2025-10-18 10:16:09 +02:00
Massive refactor
- Use contextual namespaces within Flarum\Core - Clean up and docblock everything - Refactor Activity/Notification blueprint stuff - Refactor Formatter stuff - Refactor Search stuff - Upgrade to JSON-API 1.0 - Removed “addedPosts” and “removedPosts” relationships from discussion API. This was used for adding/removing event posts after renaming a discussion etc. Instead we should make an additional request to get all new posts Todo: - Fix Extenders and extensions - Get rid of repository interfaces - Fix other bugs I’ve inevitably introduced
This commit is contained in:
@@ -1,10 +1,22 @@
|
||||
<?php namespace Flarum\Support;
|
||||
|
||||
use Flarum\Extend\ExtenderInterface;
|
||||
use Illuminate\Support\ServiceProvider as IlluminateServiceProvider;
|
||||
use Illuminate\Contracts\Events\Dispatcher;
|
||||
use InvalidArgumentException;
|
||||
|
||||
class ServiceProvider extends IlluminateServiceProvider
|
||||
{
|
||||
/**
|
||||
* Bootstrap the application events.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
$this->extend($this->extenders());
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the service provider.
|
||||
*
|
||||
@@ -12,19 +24,33 @@ class ServiceProvider extends IlluminateServiceProvider
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function extend()
|
||||
/**
|
||||
* @return ExtenderInterface[]
|
||||
*/
|
||||
public function extenders()
|
||||
{
|
||||
// @todo don't support func_get_args
|
||||
foreach (func_get_args() as $extenders) {
|
||||
if (! is_array($extenders)) {
|
||||
$extenders = [$extenders];
|
||||
}
|
||||
foreach ($extenders as $extender) {
|
||||
$extender->extend($this->app);
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ExtenderInterface|ExtenderInterface[] $extenders
|
||||
* @return void
|
||||
*/
|
||||
protected function extend($extenders)
|
||||
{
|
||||
if (! is_array($extenders)) {
|
||||
$extenders = [$extenders];
|
||||
}
|
||||
|
||||
foreach ($extenders as $extender) {
|
||||
if (! $extender instanceof ExtenderInterface) {
|
||||
throw new InvalidArgumentException('Argument must be an object of type '
|
||||
. ExtenderInterface::class);
|
||||
}
|
||||
|
||||
$extender->extend($this->app);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user