1
0
mirror of https://github.com/flarum/core.git synced 2025-08-13 20:04:24 +02:00

chore: increase phpstan level to 6 (#3836)

* chore: increase phpstan level to 6

Signed-off-by: Sami Mazouz <sychocouldy@gmail.com>

* Apply fixes from StyleCI

---------

Signed-off-by: Sami Mazouz <sychocouldy@gmail.com>
Co-authored-by: StyleCI Bot <bot@styleci.io>
This commit is contained in:
Sami Mazouz
2023-06-21 14:31:24 +01:00
committed by GitHub
parent 4a966b830f
commit 5820a16a96
84 changed files with 228 additions and 189 deletions

View File

@@ -15,22 +15,19 @@ use Psr\Http\Message\ResponseInterface;
class Akismet
{
private $apiKey;
private $apiUrl;
private $flarumVersion;
private $extensionVersion;
private string $apiUrl;
private array $params = [];
private $params = [];
public function __construct(string $apiKey, string $homeUrl, string $flarumVersion, string $extensionVersion, bool $inDebugMode = false)
{
$this->apiKey = $apiKey;
public function __construct(
private readonly string $apiKey,
string $homeUrl,
private readonly string $flarumVersion,
private readonly string $extensionVersion,
bool $inDebugMode = false
) {
$this->apiUrl = "https://$apiKey.rest.akismet.com/1.1";
$this->params['blog'] = $homeUrl;
$this->flarumVersion = $flarumVersion;
$this->extensionVersion = $extensionVersion;
if ($inDebugMode) {
$this->params['is_test'] = true;
}
@@ -73,7 +70,7 @@ class Akismet
/**
* @throws GuzzleException
*/
public function submitSpam()
public function submitSpam(): void
{
$this->sendRequest('submit-spam');
}
@@ -81,7 +78,7 @@ class Akismet
/**
* @throws GuzzleException
*/
public function submitHam()
public function submitHam(): void
{
$this->sendRequest('submit-ham');
}
@@ -90,7 +87,7 @@ class Akismet
* Allows you to set additional parameter
* This lets you use Akismet features not supported directly in this util.
*/
public function withParam(string $key, $value): Akismet
public function withParam(string $key, mixed $value): Akismet
{
$new = clone $this;
$new->params[$key] = $value;

View File

@@ -21,10 +21,12 @@ class LikePostPolicy extends AbstractPolicy
) {
}
public function like(User $actor, Post $post)
public function like(User $actor, Post $post): ?string
{
if ($actor->id === $post->user_id && ! (bool) $this->settings->get('flarum-likes.like_own_post')) {
return $this->deny();
}
return null;
}
}

View File

@@ -15,10 +15,12 @@ use Flarum\User\User;
class DiscussionPolicy extends AbstractPolicy
{
public function reply(User $actor, Discussion $discussion)
public function reply(User $actor, Discussion $discussion): ?string
{
if ($discussion->is_locked && $actor->cannot('lock', $discussion)) {
return $this->deny();
}
return null;
}
}

View File

@@ -82,9 +82,9 @@ class ConfigureMentions
/**
* @param FormatterTag $tag
* @param array{users: Collection<int, User>} $mentions
* @return bool|void
* @return bool|null
*/
public static function addUserId(FormatterTag $tag, array $mentions)
public static function addUserId(FormatterTag $tag, array $mentions): ?bool
{
$allow_username_format = (bool) resolve(SettingsRepositoryInterface::class)->get('flarum-mentions.allow_username_format');
@@ -102,6 +102,8 @@ class ConfigureMentions
}
$tag->invalidate();
return null;
}
private function configurePostMentions(Configurator $config): void
@@ -141,9 +143,9 @@ class ConfigureMentions
/**
* @param FormatterTag $tag
* @param array{posts: Collection<int, Post>} $mentions
* @return bool|void
* @return bool|null
*/
public static function addPostId(FormatterTag $tag, array $mentions)
public static function addPostId(FormatterTag $tag, array $mentions): ?bool
{
$post = $mentions['posts']->where('id', $tag->getAttribute('id'))->first();
@@ -157,9 +159,11 @@ class ConfigureMentions
return true;
}
return null;
}
private function configureGroupMentions(Configurator $config)
private function configureGroupMentions(Configurator $config): void
{
$tagName = 'GROUPMENTION';
@@ -214,9 +218,9 @@ class ConfigureMentions
* @param FormatterTag $tag
* @param User $actor
* @param array{groups: Collection<int, Group>} $mentions
* @return bool|void
* @return bool|null
*/
public static function addGroupId(FormatterTag $tag, User $actor, array $mentions)
public static function addGroupId(FormatterTag $tag, User $actor, array $mentions): ?bool
{
$id = $tag->getAttribute('id');
@@ -236,9 +240,11 @@ class ConfigureMentions
}
$tag->invalidate();
return null;
}
private function configureTagMentions(Configurator $config)
private function configureTagMentions(Configurator $config): void
{
$config->rendering->parameters['TAG_URL'] = $this->url->to('forum')->route('tag', ['slug' => '']);
@@ -303,9 +309,9 @@ class ConfigureMentions
/**
* @param FormatterTag $tag
* @param array{tags: Collection<int, Tag>} $mentions
* @return true|void
* @return bool|null
*/
public static function addTagId(FormatterTag $tag, array $mentions)
public static function addTagId(FormatterTag $tag, array $mentions): ?bool
{
/** @var Tag|null $model */
$model = $mentions['tags']->where('slug', $tag->getAttribute('slug'))->first();
@@ -316,6 +322,8 @@ class ConfigureMentions
return true;
}
return null;
}
/**

View File

@@ -29,7 +29,7 @@ class UnparsePostMentions
/**
* Updates XML post mention tags before unparsing so that unparsing uses new display names.
*/
protected function updatePostMentionTags($context, string $xml): string
protected function updatePostMentionTags(mixed $context, string $xml): string
{
$post = $context;

View File

@@ -20,7 +20,7 @@ class UserPolicy extends AbstractPolicy
) {
}
public function editNickname(User $actor, User $user)
public function editNickname(User $actor, User $user): ?string
{
if ($actor->isGuest() && ! $user->exists && $this->settings->get('flarum-nicknames.set_on_registration')) {
return $this->allow();
@@ -29,5 +29,7 @@ class UserPolicy extends AbstractPolicy
} elseif ($actor->can('edit', $user)) {
return $this->allow();
}
return null;
}
}

View File

@@ -14,10 +14,12 @@ use Flarum\User\User;
class UserPolicy extends AbstractPolicy
{
public function suspend(User $actor, User $user)
public function suspend(User $actor, User $user): ?string
{
if ($user->isAdmin() || $user->id === $actor->id) {
return $this->deny();
}
return null;
}
}

View File

@@ -22,7 +22,7 @@ class DiscussionPolicy extends AbstractPolicy
) {
}
public function can(User $actor, string $ability, Discussion $discussion)
public function can(User $actor, string $ability, Discussion $discussion): ?string
{
// Wrap all discussion permission checks with some logic pertaining to
// the discussion's tags. If the discussion has a tag that has been
@@ -46,13 +46,15 @@ class DiscussionPolicy extends AbstractPolicy
return $this->allow();
}
}
return null;
}
/**
* This method checks, if the user is still allowed to edit the tags
* based on the configuration item.
*/
public function tag(User $actor, Discussion $discussion)
public function tag(User $actor, Discussion $discussion): ?string
{
if ($discussion->user_id == $actor->id && $actor->can('reply', $discussion)) {
$allowEditTags = $this->settings->get('allow_tag_change');
@@ -65,5 +67,7 @@ class DiscussionPolicy extends AbstractPolicy
return $this->allow();
}
}
return null;
}
}

View File

@@ -21,7 +21,7 @@ class GlobalPolicy extends AbstractPolicy
) {
}
public function can(User $actor, string $ability)
public function can(User $actor, string $ability): ?string
{
static $enoughPrimary;
static $enoughSecondary;
@@ -67,5 +67,7 @@ class GlobalPolicy extends AbstractPolicy
return $this->deny();
}
}
return null;
}
}

View File

@@ -15,7 +15,7 @@ use Flarum\User\User;
class TagPolicy extends AbstractPolicy
{
public function can(User $actor, string $ability, Tag $tag)
public function can(User $actor, string $ability, Tag $tag): string|bool|null
{
if ($tag->parent_id !== null && ! $actor->can($ability, $tag->parent)) {
return $this->deny();
@@ -26,6 +26,8 @@ class TagPolicy extends AbstractPolicy
return $actor->hasPermission("tag$id.$ability");
}
return null;
}
public function addToDiscussion(User $actor, Tag $tag): bool

View File

@@ -89,12 +89,12 @@ class Tag
/**
* Get the result of an API request to list discussions.
*/
protected function getApiDocument(Request $request, array $params)
protected function getApiDocument(Request $request, array $params): object
{
return json_decode($this->api->withParentRequest($request)->withQueryParams($params)->get('/discussions')->getBody());
}
protected function getTagsDocument(Request $request, string $slug)
protected function getTagsDocument(Request $request, string $slug): object
{
return json_decode($this->api->withParentRequest($request)->withQueryParams([
'include' => 'children,children.parent,parent,parent.children.parent,state'

View File

@@ -34,14 +34,14 @@ class Tags
public function __invoke(Document $document, Request $request): Document
{
$apiDocument = $this->getTagsDocument($request);
$tags = collect(Arr::get($apiDocument, 'data', []));
$tags = collect((array) Arr::get($apiDocument, 'data', []));
$childTags = $tags->where('attributes.isChild', true);
$primaryTags = $tags->where('attributes.isChild', false)->where('attributes.position', '!==', null)->sortBy('attributes.position');
$secondaryTags = $tags->where('attributes.isChild', false)->where('attributes.position', '===', null)->sortBy('attributes.name');
$children = $primaryTags->mapWithKeys(function ($tag) use ($childTags) {
$childIds = collect(Arr::get($tag, 'relationships.children.data'))->pluck('id');
$childIds = collect((array) Arr::get($tag, 'relationships.children.data'))->pluck('id');
return [$tag['id'] => $childTags->whereIn('id', $childIds)->sortBy('position')];
});
@@ -56,7 +56,7 @@ class Tags
return $document;
}
protected function getTagsDocument(Request $request)
protected function getTagsDocument(Request $request): array
{
return json_decode($this->api->withParentRequest($request)->withQueryParams([
'include' => 'children,lastPostedDiscussion,parent'

View File

@@ -49,7 +49,7 @@ class TagFilterGambit extends AbstractRegexGambit implements FilterInterface
$this->constrain($filterState->getQuery(), $filterValue, $negate, $filterState->getActor());
}
protected function constrain(Builder $query, string|array $rawSlugs, $negate, User $actor): void
protected function constrain(Builder $query, string|array $rawSlugs, bool $negate, User $actor): void
{
$slugs = $this->asStringArray($rawSlugs);