1
0
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:
Toby Zerner
2015-07-04 12:24:48 +09:30
parent 12dd550a14
commit a74b40fe47
324 changed files with 6443 additions and 4197 deletions

View File

@@ -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);
}
}
}