1
0
mirror of https://github.com/flarum/core.git synced 2025-10-12 07:24:27 +02:00

Finalize Flarum\Foundation namespace

This commit is contained in:
Franz Liedke
2017-06-24 13:25:49 +02:00
parent 33e3d757c3
commit 6c9ff72efb
33 changed files with 63 additions and 57 deletions

View File

@@ -13,12 +13,12 @@ namespace Flarum\Core\Command;
use Flarum\User\EmailToken;
use Flarum\User\UserRepository;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Illuminate\Contracts\Events\Dispatcher;
class ConfirmEmailHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
/**
* @var \Flarum\User\UserRepository

View File

@@ -14,14 +14,14 @@ namespace Flarum\Core\Command;
use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\User\Exception\PermissionDeniedException;
use Flarum\Core\Group;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\Core\Validator\GroupValidator;
use Flarum\Event\GroupWillBeSaved;
use Illuminate\Contracts\Events\Dispatcher;
class CreateGroupHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -14,14 +14,14 @@ namespace Flarum\Core\Command;
use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\User\Exception\PermissionDeniedException;
use Flarum\User\UserRepository;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\Event\AvatarWillBeDeleted;
use Illuminate\Contracts\Events\Dispatcher;
use League\Flysystem\FilesystemInterface;
class DeleteAvatarHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -14,13 +14,13 @@ namespace Flarum\Core\Command;
use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\User\Exception\PermissionDeniedException;
use Flarum\Core\Repository\DiscussionRepository;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\Event\DiscussionWillBeDeleted;
use Illuminate\Contracts\Events\Dispatcher;
class DeleteDiscussionHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -14,13 +14,13 @@ namespace Flarum\Core\Command;
use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\User\Exception\PermissionDeniedException;
use Flarum\Core\Repository\GroupRepository;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\Event\GroupWillBeDeleted;
use Illuminate\Contracts\Events\Dispatcher;
class DeleteGroupHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -14,13 +14,13 @@ namespace Flarum\Core\Command;
use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\User\Exception\PermissionDeniedException;
use Flarum\Core\Repository\PostRepository;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\Event\PostWillBeDeleted;
use Illuminate\Contracts\Events\Dispatcher;
class DeletePostHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -14,13 +14,13 @@ namespace Flarum\Core\Command;
use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\User\Exception\PermissionDeniedException;
use Flarum\User\UserRepository;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\User\Event\Deleting;
use Illuminate\Contracts\Events\Dispatcher;
class DeleteUserHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -14,14 +14,14 @@ namespace Flarum\Core\Command;
use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\User\Exception\PermissionDeniedException;
use Flarum\Core\Repository\DiscussionRepository;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\Core\Validator\DiscussionValidator;
use Flarum\Event\DiscussionWillBeSaved;
use Illuminate\Contracts\Events\Dispatcher;
class EditDiscussionHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -15,14 +15,14 @@ use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\User\Exception\PermissionDeniedException;
use Flarum\Core\Group;
use Flarum\Core\Repository\GroupRepository;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\Core\Validator\GroupValidator;
use Flarum\Event\GroupWillBeSaved;
use Illuminate\Contracts\Events\Dispatcher;
class EditGroupHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -14,14 +14,14 @@ namespace Flarum\Core\Command;
use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\Core\Post\CommentPost;
use Flarum\Core\Repository\PostRepository;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\Core\Validator\PostValidator;
use Flarum\Event\PostWillBeSaved;
use Illuminate\Contracts\Events\Dispatcher;
class EditPostHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -13,7 +13,7 @@ namespace Flarum\Core\Command;
use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\User\UserRepository;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\User\User;
use Flarum\User\UserValidator;
use Flarum\User\Event\GroupsChanged;
@@ -22,7 +22,7 @@ use Illuminate\Contracts\Events\Dispatcher;
class EditUserHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -16,14 +16,14 @@ use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\Core\Notification\NotificationSyncer;
use Flarum\Core\Post\CommentPost;
use Flarum\Core\Repository\DiscussionRepository;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\Core\Validator\PostValidator;
use Flarum\Event\PostWillBeSaved;
use Illuminate\Contracts\Events\Dispatcher;
class PostReplyHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -13,13 +13,13 @@ namespace Flarum\Core\Command;
use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\Core\Repository\DiscussionRepository;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\Event\DiscussionStateWillBeSaved;
use Illuminate\Contracts\Events\Dispatcher;
class ReadDiscussionHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -15,7 +15,7 @@ use Exception;
use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\User\AuthToken;
use Flarum\User\Exception\PermissionDeniedException;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\User\User;
use Flarum\User\UserValidator;
use Flarum\User\Event\Saving;
@@ -33,7 +33,7 @@ use League\Flysystem\MountManager;
class RegisterUserHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -14,7 +14,7 @@ namespace Flarum\Core\Command;
use Exception;
use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\Core\Discussion;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\Core\Validator\DiscussionValidator;
use Flarum\Event\DiscussionWillBeSaved;
use Illuminate\Contracts\Bus\Dispatcher as BusDispatcher;
@@ -22,7 +22,7 @@ use Illuminate\Contracts\Events\Dispatcher as EventDispatcher;
class StartDiscussionHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -14,7 +14,7 @@ namespace Flarum\Core\Command;
use Exception;
use Flarum\Core\Access\AssertPermissionTrait;
use Flarum\User\UserRepository;
use Flarum\Core\Support\DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\User\AvatarValidator;
use Flarum\Event\AvatarWillBeSaved;
use Flarum\Foundation\Application;
@@ -29,7 +29,7 @@ use Symfony\Component\HttpFoundation\File\UploadedFile;
class UploadAvatarHandler
{
use DispatchEventsTrait;
use Flarum\Foundation\DispatchEventsTrait;
use AssertPermissionTrait;
/**

View File

@@ -12,7 +12,7 @@
namespace Flarum\Core;
use Flarum\Core\Post\MergeableInterface;
use Flarum\Core\Support\EventGeneratorTrait;
use Flarum\Foundation\EventGeneratorTrait;
use Flarum\Database\ScopeVisibilityTrait;
use Flarum\Database\AbstractModel;
use Flarum\Event\DiscussionWasDeleted;
@@ -55,7 +55,7 @@ use Flarum\Util\Str;
*/
class Discussion extends AbstractModel
{
use EventGeneratorTrait;
use Flarum\Foundation\EventGeneratorTrait;
use ScopeVisibilityTrait;
/**

View File

@@ -11,7 +11,7 @@
namespace Flarum\Core;
use Flarum\Core\Support\EventGeneratorTrait;
use Flarum\Foundation\EventGeneratorTrait;
use Flarum\Database\AbstractModel;
use Flarum\Event\DiscussionWasRead;
use Illuminate\Database\Eloquent\Builder;
@@ -32,7 +32,7 @@ use Illuminate\Database\Eloquent\Builder;
*/
class DiscussionState extends AbstractModel
{
use EventGeneratorTrait;
use Flarum\Foundation\EventGeneratorTrait;
/**
* {@inheritdoc}

View File

@@ -1,40 +0,0 @@
<?php
/*
* This file is part of Flarum.
*
* (c) Toby Zerner <toby.zerner@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Flarum\Core\Exception;
use Exception;
class ValidationException extends Exception
{
protected $attributes;
protected $relationships;
public function __construct(array $attributes, array $relationships = [])
{
$this->attributes = $attributes;
$this->relationships = $relationships;
$messages = [implode("\n", $attributes), implode("\n", $relationships)];
parent::__construct(implode("\n", $messages));
}
public function getAttributes()
{
return $this->attributes;
}
public function getRelationships()
{
return $this->relationships;
}
}

View File

@@ -11,7 +11,7 @@
namespace Flarum\Core;
use Flarum\Core\Support\EventGeneratorTrait;
use Flarum\Foundation\EventGeneratorTrait;
use Flarum\Database\ScopeVisibilityTrait;
use Flarum\Database\AbstractModel;
use Flarum\Event\GroupWasCreated;
@@ -29,7 +29,7 @@ use Flarum\Event\GroupWasRenamed;
*/
class Group extends AbstractModel
{
use EventGeneratorTrait;
use Flarum\Foundation\EventGeneratorTrait;
use ScopeVisibilityTrait;
/**

View File

@@ -12,7 +12,7 @@
namespace Flarum\Core;
use Flarum\Core\Post\RegisteredTypesScope;
use Flarum\Core\Support\EventGeneratorTrait;
use Flarum\Foundation\EventGeneratorTrait;
use Flarum\Database\ScopeVisibilityTrait;
use Flarum\Database\AbstractModel;
use Flarum\Event\PostWasDeleted;
@@ -39,7 +39,7 @@ use Illuminate\Database\Eloquent\Builder;
*/
class Post extends AbstractModel
{
use EventGeneratorTrait;
use Flarum\Foundation\EventGeneratorTrait;
use ScopeVisibilityTrait;
/**

View File

@@ -1,38 +0,0 @@
<?php
/*
* This file is part of Flarum.
*
* (c) Toby Zerner <toby.zerner@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Flarum\Core\Support;
use Flarum\User\User;
use Illuminate\Contracts\Events\Dispatcher;
trait DispatchEventsTrait
{
/**
* @var Dispatcher
*/
protected $events;
/**
* Dispatch all events for an entity.
*
* @param object $entity
* @param User $actor
*/
public function dispatchEventsFor($entity, User $actor = null)
{
foreach ($entity->releaseEvents() as $event) {
$event->actor = $actor;
$this->events->fire($event);
}
}
}

View File

@@ -1,44 +0,0 @@
<?php
/*
* This file is part of Flarum.
*
* (c) Toby Zerner <toby.zerner@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Flarum\Core\Support;
trait EventGeneratorTrait
{
/**
* @var array
*/
protected $pendingEvents = [];
/**
* Raise a new event.
*
* @param mixed $event
*/
public function raise($event)
{
$this->pendingEvents[] = $event;
}
/**
* Return and reset all pending events.
*
* @return array
*/
public function releaseEvents()
{
$events = $this->pendingEvents;
$this->pendingEvents = [];
return $events;
}
}

View File

@@ -1,102 +0,0 @@
<?php
/*
* This file is part of Flarum.
*
* (c) Toby Zerner <toby.zerner@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Flarum\Core\Validator;
use Flarum\Event\ConfigureValidator;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Contracts\Validation\ValidationException;
use Illuminate\Validation\Factory;
use Symfony\Component\Translation\TranslatorInterface;
abstract class AbstractValidator
{
/**
* @var array
*/
protected $rules = [];
/**
* @var Factory
*/
protected $validator;
/**
* @var Dispatcher
*/
protected $events;
/**
* @var TranslatorInterface
*/
protected $translator;
/**
* @param Factory $validator
* @param Dispatcher $events
* @param TranslatorInterface $translator
*/
public function __construct(Factory $validator, Dispatcher $events, TranslatorInterface $translator)
{
$this->validator = $validator;
$this->events = $events;
$this->translator = $translator;
}
/**
* Throw an exception if a model is not valid.
*
* @param array $attributes
*/
public function assertValid(array $attributes)
{
$validator = $this->makeValidator($attributes);
if ($validator->fails()) {
throw new ValidationException($validator);
}
}
/**
* @return array
*/
protected function getRules()
{
return $this->rules;
}
/**
* @return array
*/
protected function getMessages()
{
return [];
}
/**
* Make a new validator instance for this model.
*
* @param array $attributes
* @return \Illuminate\Validation\Validator
*/
protected function makeValidator(array $attributes)
{
$rules = array_only($this->getRules(), array_keys($attributes));
$validator = $this->validator->make($attributes, $rules, $this->getMessages());
$this->events->fire(
new ConfigureValidator($this, $validator)
);
return $validator;
}
}

View File

@@ -11,6 +11,8 @@
namespace Flarum\Core\Validator;
use Flarum\Foundation\AbstractValidator;
class DiscussionValidator extends AbstractValidator
{
protected $rules = [

View File

@@ -11,6 +11,8 @@
namespace Flarum\Core\Validator;
use Flarum\Foundation\AbstractValidator;
class GroupValidator extends AbstractValidator
{
protected $rules = [

View File

@@ -11,6 +11,8 @@
namespace Flarum\Core\Validator;
use Flarum\Foundation\AbstractValidator;
class PostValidator extends AbstractValidator
{
protected $rules = [