Use Laravel's class-based Str and Arr helpers

Starting with version 5.9, the global funtions will be deprecated.

* https://laravel-news.com/laravel-5-8-deprecates-string-and-array-helpers
* https://github.com/laravel/framework/pull/26898
This commit is contained in:
Franz Liedke 2019-07-06 00:49:34 +02:00
parent 039973c5f8
commit 32e84d651c
78 changed files with 229 additions and 144 deletions

View File

@ -14,6 +14,7 @@ namespace Flarum\Api;
use Carbon\Carbon;
use Flarum\Database\AbstractModel;
use Flarum\User\User;
use Illuminate\Support\Str;
/**
* @property int $id
@ -38,7 +39,7 @@ class ApiKey extends AbstractModel
{
$key = new static;
$key->key = str_random(40);
$key->key = Str::random(40);
return $key;
}

View File

@ -16,6 +16,7 @@ use Flarum\Discussion\Command\ReadDiscussion;
use Flarum\Discussion\Command\StartDiscussion;
use Flarum\Post\Floodgate;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -63,14 +64,14 @@ class CreateDiscussionController extends AbstractCreateController
protected function data(ServerRequestInterface $request, Document $document)
{
$actor = $request->getAttribute('actor');
$ipAddress = array_get($request->getServerParams(), 'REMOTE_ADDR', '127.0.0.1');
$ipAddress = Arr::get($request->getServerParams(), 'REMOTE_ADDR', '127.0.0.1');
if (! $request->getAttribute('bypassFloodgate')) {
$this->floodgate->assertNotFlooding($actor);
}
$discussion = $this->bus->dispatch(
new StartDiscussion($actor, array_get($request->getParsedBody(), 'data', []), $ipAddress)
new StartDiscussion($actor, Arr::get($request->getParsedBody(), 'data', []), $ipAddress)
);
// After creating the discussion, we assume that the user has seen all

View File

@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
use Flarum\Api\Serializer\GroupSerializer;
use Flarum\Group\Command\CreateGroup;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -43,7 +44,7 @@ class CreateGroupController extends AbstractCreateController
protected function data(ServerRequestInterface $request, Document $document)
{
return $this->bus->dispatch(
new CreateGroup($request->getAttribute('actor'), array_get($request->getParsedBody(), 'data', []))
new CreateGroup($request->getAttribute('actor'), Arr::get($request->getParsedBody(), 'data', []))
);
}
}

View File

@ -16,6 +16,7 @@ use Flarum\Discussion\Command\ReadDiscussion;
use Flarum\Post\Command\PostReply;
use Flarum\Post\Floodgate;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -62,9 +63,9 @@ class CreatePostController extends AbstractCreateController
protected function data(ServerRequestInterface $request, Document $document)
{
$actor = $request->getAttribute('actor');
$data = array_get($request->getParsedBody(), 'data', []);
$discussionId = array_get($data, 'relationships.discussion.data.id');
$ipAddress = array_get($request->getServerParams(), 'REMOTE_ADDR', '127.0.0.1');
$data = Arr::get($request->getParsedBody(), 'data', []);
$discussionId = Arr::get($data, 'relationships.discussion.data.id');
$ipAddress = Arr::get($request->getServerParams(), 'REMOTE_ADDR', '127.0.0.1');
if (! $request->getAttribute('bypassFloodgate')) {
$this->floodgate->assertNotFlooding($actor);

View File

@ -16,6 +16,7 @@ use Flarum\User\Exception\PermissionDeniedException;
use Flarum\User\UserRepository;
use Illuminate\Contracts\Bus\Dispatcher as BusDispatcher;
use Illuminate\Contracts\Events\Dispatcher as EventDispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
@ -57,9 +58,9 @@ class CreateTokenController implements RequestHandlerInterface
{
$body = $request->getParsedBody();
$identification = array_get($body, 'identification');
$password = array_get($body, 'password');
$lifetime = array_get($body, 'lifetime', 3600);
$identification = Arr::get($body, 'identification');
$password = Arr::get($body, 'password');
$lifetime = Arr::get($body, 'lifetime', 3600);
$user = $this->users->findByIdentification($identification);

View File

@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
use Flarum\Api\Serializer\CurrentUserSerializer;
use Flarum\User\Command\RegisterUser;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -43,7 +44,7 @@ class CreateUserController extends AbstractCreateController
protected function data(ServerRequestInterface $request, Document $document)
{
return $this->bus->dispatch(
new RegisterUser($request->getAttribute('actor'), array_get($request->getParsedBody(), 'data', []))
new RegisterUser($request->getAttribute('actor'), Arr::get($request->getParsedBody(), 'data', []))
);
}
}

View File

@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
use Flarum\Api\Serializer\UserSerializer;
use Flarum\User\Command\DeleteAvatar;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -43,7 +44,7 @@ class DeleteAvatarController extends AbstractShowController
protected function data(ServerRequestInterface $request, Document $document)
{
return $this->bus->dispatch(
new DeleteAvatar(array_get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
new DeleteAvatar(Arr::get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
);
}
}

View File

@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
use Flarum\Discussion\Command\DeleteDiscussion;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
class DeleteDiscussionController extends AbstractDeleteController
@ -35,7 +36,7 @@ class DeleteDiscussionController extends AbstractDeleteController
*/
protected function delete(ServerRequestInterface $request)
{
$id = array_get($request->getQueryParams(), 'id');
$id = Arr::get($request->getQueryParams(), 'id');
$actor = $request->getAttribute('actor');
$input = $request->getParsedBody();

View File

@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
use Flarum\Group\Command\DeleteGroup;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
class DeleteGroupController extends AbstractDeleteController
@ -36,7 +37,7 @@ class DeleteGroupController extends AbstractDeleteController
protected function delete(ServerRequestInterface $request)
{
$this->bus->dispatch(
new DeleteGroup(array_get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
new DeleteGroup(Arr::get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
);
}
}

View File

@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
use Flarum\Post\Command\DeletePost;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
class DeletePostController extends AbstractDeleteController
@ -36,7 +37,7 @@ class DeletePostController extends AbstractDeleteController
protected function delete(ServerRequestInterface $request)
{
$this->bus->dispatch(
new DeletePost(array_get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
new DeletePost(Arr::get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
);
}
}

View File

@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
use Flarum\User\Command\DeleteUser;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
class DeleteUserController extends AbstractDeleteController
@ -36,7 +37,7 @@ class DeleteUserController extends AbstractDeleteController
protected function delete(ServerRequestInterface $request)
{
$this->bus->dispatch(
new DeleteUser(array_get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
new DeleteUser(Arr::get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
);
}
}

View File

@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
use Flarum\User\Command\RequestPasswordReset;
use Flarum\User\UserRepository;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
@ -46,7 +47,7 @@ class ForgotPasswordController implements RequestHandlerInterface
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$email = array_get($request->getParsedBody(), 'email');
$email = Arr::get($request->getParsedBody(), 'email');
$this->bus->dispatch(
new RequestPasswordReset($email)

View File

@ -16,6 +16,7 @@ use Flarum\Discussion\Discussion;
use Flarum\Discussion\Search\DiscussionSearcher;
use Flarum\Http\UrlGenerator;
use Flarum\Search\SearchCriteria;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -75,7 +76,7 @@ class ListDiscussionsController extends AbstractListController
protected function data(ServerRequestInterface $request, Document $document)
{
$actor = $request->getAttribute('actor');
$query = array_get($this->extractFilter($request), 'q');
$query = Arr::get($this->extractFilter($request), 'q');
$sort = $this->extractSort($request);
$criteria = new SearchCriteria($actor, $query, $sort);

View File

@ -15,6 +15,8 @@ use Flarum\Api\Serializer\PostSerializer;
use Flarum\Event\ConfigurePostsQuery;
use Flarum\Post\PostRepository;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
use Tobscure\JsonApi\Exception\InvalidParameterException;
@ -64,7 +66,7 @@ class ListPostsController extends AbstractListController
$filter = $this->extractFilter($request);
$include = $this->extractInclude($request);
if ($postIds = array_get($filter, 'id')) {
if ($postIds = Arr::get($filter, 'id')) {
$postIds = explode(',', $postIds);
} else {
$postIds = $this->getPostIds($request);
@ -86,7 +88,7 @@ class ListPostsController extends AbstractListController
$limit = $this->extractLimit($request);
$filter = $this->extractFilter($request);
if (($near = array_get($queryParams, 'page.near')) > 1) {
if (($near = Arr::get($queryParams, 'page.near')) > 1) {
if (count($filter) > 1 || ! isset($filter['discussion']) || $sort) {
throw new InvalidParameterException(
'You can only use page[near] with filter[discussion] and the default sort order'
@ -120,7 +122,7 @@ class ListPostsController extends AbstractListController
$query->skip($offset)->take($limit);
foreach ((array) $sort as $field => $order) {
$query->orderBy(snake_case($field), $order);
$query->orderBy(Str::snake($field), $order);
}
return $query->pluck('id')->all();
@ -132,19 +134,19 @@ class ListPostsController extends AbstractListController
*/
private function applyFilters(Builder $query, array $filter)
{
if ($discussionId = array_get($filter, 'discussion')) {
if ($discussionId = Arr::get($filter, 'discussion')) {
$query->where('discussion_id', $discussionId);
}
if ($number = array_get($filter, 'number')) {
if ($number = Arr::get($filter, 'number')) {
$query->where('number', $number);
}
if ($userId = array_get($filter, 'user')) {
if ($userId = Arr::get($filter, 'user')) {
$query->where('user_id', $userId);
}
if ($type = array_get($filter, 'type')) {
if ($type = Arr::get($filter, 'type')) {
$query->where('type', $type);
}

View File

@ -16,6 +16,7 @@ use Flarum\Http\UrlGenerator;
use Flarum\Search\SearchCriteria;
use Flarum\User\Exception\PermissionDeniedException;
use Flarum\User\Search\UserSearcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -73,7 +74,7 @@ class ListUsersController extends AbstractListController
throw new PermissionDeniedException;
}
$query = array_get($this->extractFilter($request), 'q');
$query = Arr::get($this->extractFilter($request), 'q');
$sort = $this->extractSort($request);
$criteria = new SearchCriteria($actor, $query, $sort);

View File

@ -18,6 +18,7 @@ use Flarum\User\EmailToken;
use Flarum\User\Exception\PermissionDeniedException;
use Illuminate\Contracts\Mail\Mailer;
use Illuminate\Mail\Message;
use Illuminate\Support\Arr;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
@ -67,7 +68,7 @@ class SendConfirmationEmailController implements RequestHandlerInterface
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$id = array_get($request->getQueryParams(), 'id');
$id = Arr::get($request->getQueryParams(), 'id');
$actor = $request->getAttribute('actor');
$this->assertRegistered($actor);

View File

@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
use Flarum\Group\Permission;
use Flarum\User\AssertPermissionTrait;
use Illuminate\Support\Arr;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
@ -30,8 +31,8 @@ class SetPermissionController implements RequestHandlerInterface
$this->assertAdmin($request->getAttribute('actor'));
$body = $request->getParsedBody();
$permission = array_get($body, 'permission');
$groupIds = array_get($body, 'groupIds');
$permission = Arr::get($body, 'permission');
$groupIds = Arr::get($body, 'groupIds');
Permission::where('permission', $permission)->delete();

View File

@ -16,6 +16,8 @@ use Flarum\Discussion\Discussion;
use Flarum\Discussion\DiscussionRepository;
use Flarum\Post\PostRepository;
use Flarum\User\User;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -73,7 +75,7 @@ class ShowDiscussionController extends AbstractShowController
*/
protected function data(ServerRequestInterface $request, Document $document)
{
$discussionId = array_get($request->getQueryParams(), 'id');
$discussionId = Arr::get($request->getQueryParams(), 'id');
$actor = $request->getAttribute('actor');
$include = $this->extractInclude($request);
@ -86,7 +88,7 @@ class ShowDiscussionController extends AbstractShowController
}
$discussion->load(array_filter($include, function ($relationship) {
return ! starts_with($relationship, 'posts');
return ! Str::startsWith($relationship, 'posts');
}));
return $discussion;
@ -150,7 +152,7 @@ class ShowDiscussionController extends AbstractShowController
$queryParams = $request->getQueryParams();
$actor = $request->getAttribute('actor');
if (($near = array_get($queryParams, 'page.near')) > 1) {
if (($near = Arr::get($queryParams, 'page.near')) > 1) {
$offset = $this->posts->getIndexForNumber($discussion->id, $near, $actor);
$offset = max(0, $offset - $limit / 2);
} else {

View File

@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
use Flarum\Api\Serializer\PostSerializer;
use Flarum\Post\PostRepository;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -52,6 +53,6 @@ class ShowPostController extends AbstractShowController
*/
protected function data(ServerRequestInterface $request, Document $document)
{
return $this->posts->findOrFail(array_get($request->getQueryParams(), 'id'), $request->getAttribute('actor'));
return $this->posts->findOrFail(Arr::get($request->getQueryParams(), 'id'), $request->getAttribute('actor'));
}
}

View File

@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
use Flarum\Api\Serializer\CurrentUserSerializer;
use Flarum\Api\Serializer\UserSerializer;
use Flarum\User\UserRepository;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -47,7 +48,7 @@ class ShowUserController extends AbstractShowController
*/
protected function data(ServerRequestInterface $request, Document $document)
{
$id = array_get($request->getQueryParams(), 'id');
$id = Arr::get($request->getQueryParams(), 'id');
if (! is_numeric($id)) {
$id = $this->users->getIdForUsername($id);

View File

@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
use Flarum\Extension\ExtensionManager;
use Flarum\User\AssertPermissionTrait;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
class UninstallExtensionController extends AbstractDeleteController
@ -36,7 +37,7 @@ class UninstallExtensionController extends AbstractDeleteController
{
$this->assertAdmin($request->getAttribute('actor'));
$name = array_get($request->getQueryParams(), 'name');
$name = Arr::get($request->getQueryParams(), 'name');
if ($this->extensions->getExtension($name) == null) {
return;

View File

@ -16,6 +16,7 @@ use Flarum\Discussion\Command\EditDiscussion;
use Flarum\Discussion\Command\ReadDiscussion;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -45,8 +46,8 @@ class UpdateDiscussionController extends AbstractShowController
protected function data(ServerRequestInterface $request, Document $document)
{
$actor = $request->getAttribute('actor');
$discussionId = array_get($request->getQueryParams(), 'id');
$data = array_get($request->getParsedBody(), 'data', []);
$discussionId = Arr::get($request->getQueryParams(), 'id');
$data = Arr::get($request->getParsedBody(), 'data', []);
$discussion = $this->bus->dispatch(
new EditDiscussion($discussionId, $actor, $data)
@ -54,7 +55,7 @@ class UpdateDiscussionController extends AbstractShowController
// TODO: Refactor the ReadDiscussion (state) command into EditDiscussion?
// That's what extensions will do anyway.
if ($readNumber = array_get($data, 'attributes.lastReadPostNumber')) {
if ($readNumber = Arr::get($data, 'attributes.lastReadPostNumber')) {
$state = $this->bus->dispatch(
new ReadDiscussion($discussionId, $actor, $readNumber)
);

View File

@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
use Flarum\Extension\ExtensionManager;
use Flarum\User\AssertPermissionTrait;
use Illuminate\Support\Arr;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
@ -42,8 +43,8 @@ class UpdateExtensionController implements RequestHandlerInterface
{
$this->assertAdmin($request->getAttribute('actor'));
$enabled = array_get($request->getParsedBody(), 'enabled');
$name = array_get($request->getQueryParams(), 'name');
$enabled = Arr::get($request->getParsedBody(), 'enabled');
$name = Arr::get($request->getQueryParams(), 'name');
if ($enabled === true) {
$this->extensions->enable($name);

View File

@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
use Flarum\Api\Serializer\GroupSerializer;
use Flarum\Group\Command\EditGroup;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -42,9 +43,9 @@ class UpdateGroupController extends AbstractShowController
*/
protected function data(ServerRequestInterface $request, Document $document)
{
$id = array_get($request->getQueryParams(), 'id');
$id = Arr::get($request->getQueryParams(), 'id');
$actor = $request->getAttribute('actor');
$data = array_get($request->getParsedBody(), 'data', []);
$data = Arr::get($request->getParsedBody(), 'data', []);
return $this->bus->dispatch(
new EditGroup($id, $actor, $data)

View File

@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
use Flarum\Api\Serializer\NotificationSerializer;
use Flarum\Notification\Command\ReadNotification;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -42,7 +43,7 @@ class UpdateNotificationController extends AbstractShowController
*/
protected function data(ServerRequestInterface $request, Document $document)
{
$id = array_get($request->getQueryParams(), 'id');
$id = Arr::get($request->getQueryParams(), 'id');
$actor = $request->getAttribute('actor');
return $this->bus->dispatch(

View File

@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
use Flarum\Api\Serializer\PostSerializer;
use Flarum\Post\Command\EditPost;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -50,9 +51,9 @@ class UpdatePostController extends AbstractShowController
*/
protected function data(ServerRequestInterface $request, Document $document)
{
$id = array_get($request->getQueryParams(), 'id');
$id = Arr::get($request->getQueryParams(), 'id');
$actor = $request->getAttribute('actor');
$data = array_get($request->getParsedBody(), 'data', []);
$data = Arr::get($request->getParsedBody(), 'data', []);
return $this->bus->dispatch(
new EditPost($id, $actor, $data)

View File

@ -16,6 +16,7 @@ use Flarum\Api\Serializer\UserSerializer;
use Flarum\User\Command\EditUser;
use Flarum\User\Exception\PermissionDeniedException;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -49,9 +50,9 @@ class UpdateUserController extends AbstractShowController
*/
protected function data(ServerRequestInterface $request, Document $document)
{
$id = array_get($request->getQueryParams(), 'id');
$id = Arr::get($request->getQueryParams(), 'id');
$actor = $request->getAttribute('actor');
$data = array_get($request->getParsedBody(), 'data', []);
$data = Arr::get($request->getParsedBody(), 'data', []);
if ($actor->id == $id) {
$this->serializer = CurrentUserSerializer::class;
@ -60,7 +61,7 @@ class UpdateUserController extends AbstractShowController
// Require the user's current password if they are attempting to change
// their own email address.
if (isset($data['attributes']['email']) && $actor->id == $id) {
$password = array_get($request->getParsedBody(), 'meta.password');
$password = Arr::get($request->getParsedBody(), 'meta.password');
if (! $actor->checkPassword($password)) {
throw new PermissionDeniedException;

View File

@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
use Flarum\Api\Serializer\UserSerializer;
use Flarum\User\Command\UploadAvatar;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
@ -42,9 +43,9 @@ class UploadAvatarController extends AbstractShowController
*/
protected function data(ServerRequestInterface $request, Document $document)
{
$id = array_get($request->getQueryParams(), 'id');
$id = Arr::get($request->getQueryParams(), 'id');
$actor = $request->getAttribute('actor');
$file = array_get($request->getUploadedFiles(), 'avatar');
$file = Arr::get($request->getUploadedFiles(), 'avatar');
return $this->bus->dispatch(
new UploadAvatar($id, $file, $actor)

View File

@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
use Flarum\Foundation\Application;
use Flarum\Settings\SettingsRepositoryInterface;
use Flarum\User\AssertPermissionTrait;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use Intervention\Image\ImageManager;
use League\Flysystem\Adapter\Local;
@ -52,7 +53,7 @@ class UploadFaviconController extends ShowForumController
{
$this->assertAdmin($request->getAttribute('actor'));
$file = array_get($request->getUploadedFiles(), 'favicon');
$file = Arr::get($request->getUploadedFiles(), 'favicon');
$tmpFile = tempnam($this->app->storagePath().'/tmp', 'favicon');
$file->moveTo($tmpFile);

View File

@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
use Flarum\Foundation\Application;
use Flarum\Settings\SettingsRepositoryInterface;
use Flarum\User\AssertPermissionTrait;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use Intervention\Image\ImageManager;
use League\Flysystem\Adapter\Local;
@ -52,7 +53,7 @@ class UploadLogoController extends ShowForumController
{
$this->assertAdmin($request->getAttribute('actor'));
$file = array_get($request->getUploadedFiles(), 'logo');
$file = Arr::get($request->getUploadedFiles(), 'logo');
$tmpFile = tempnam($this->app->storagePath().'/tmp', 'logo');
$file->moveTo($tmpFile);

View File

@ -12,6 +12,7 @@
namespace Flarum\Api\Event;
use Flarum\Api\Controller\AbstractSerializeController;
use Illuminate\Support\Arr;
class WillGetData
{
@ -64,7 +65,7 @@ class WillGetData
*/
public function removeInclude($name)
{
array_forget($this->controller->include, $name);
Arr::forget($this->controller->include, $name);
}
/**
@ -84,7 +85,7 @@ class WillGetData
*/
public function removeOptionalInclude($name)
{
array_forget($this->controller->optionalInclude, $name);
Arr::forget($this->controller->optionalInclude, $name);
}
/**
@ -124,7 +125,7 @@ class WillGetData
*/
public function removeSortField($field)
{
array_forget($this->controller->sortFields, $field);
Arr::forget($this->controller->sortFields, $field);
}
/**

View File

@ -17,6 +17,7 @@ use Flarum\Discussion\Event\Saving;
use Flarum\Foundation\DispatchEventsTrait;
use Flarum\User\AssertPermissionTrait;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Support\Arr;
class EditDiscussionHandler
{
@ -54,7 +55,7 @@ class EditDiscussionHandler
{
$actor = $command->actor;
$data = $command->data;
$attributes = array_get($data, 'attributes', []);
$attributes = Arr::get($data, 'attributes', []);
$discussion = $this->discussions->findOrFail($command->discussionId, $actor);

View File

@ -20,6 +20,7 @@ use Flarum\Post\Command\PostReply;
use Flarum\User\AssertPermissionTrait;
use Illuminate\Contracts\Bus\Dispatcher as BusDispatcher;
use Illuminate\Contracts\Events\Dispatcher as EventDispatcher;
use Illuminate\Support\Arr;
class StartDiscussionHandler
{
@ -66,7 +67,7 @@ class StartDiscussionHandler
// an opportunity to alter the discussion entity based on data in the
// command they may have passed through in the controller.
$discussion = Discussion::start(
array_get($data, 'attributes.title'),
Arr::get($data, 'attributes.title'),
$actor
);

View File

@ -13,6 +13,7 @@ namespace Flarum\Event;
use DirectoryIterator;
use Flarum\Locale\LocaleManager;
use Illuminate\Support\Arr;
use RuntimeException;
/**
@ -49,8 +50,8 @@ class ConfigureLocales
throw new RuntimeException("Error parsing composer.json in $name: ".json_last_error_msg());
}
$locale = array_get($json, 'extra.flarum-locale.code');
$title = array_get($json, 'extra.flarum-locale.title', $title);
$locale = Arr::get($json, 'extra.flarum-locale.code');
$title = Arr::get($json, 'extra.flarum-locale.title', $title);
}
if (! isset($locale)) {

View File

@ -14,6 +14,7 @@ namespace Flarum\Extension;
use Flarum\Extension\Event\Disabling;
use Flarum\Http\Exception\ForbiddenException;
use Flarum\Settings\SettingsRepositoryInterface;
use Illuminate\Support\Arr;
class DefaultLanguagePackGuard
{
@ -34,7 +35,7 @@ class DefaultLanguagePackGuard
}
$defaultLocale = $this->settings->get('default_locale');
$locale = array_get($event->extension->extra, 'flarum-locale.code');
$locale = Arr::get($event->extension->extra, 'flarum-locale.code');
if ($locale === $defaultLocale) {
throw new ForbiddenException('You cannot disable the default language pack!');

View File

@ -15,6 +15,7 @@ use Flarum\Http\Rememberer;
use Flarum\User\LoginProvider;
use Flarum\User\RegistrationToken;
use Flarum\User\User;
use Illuminate\Support\Arr;
use Psr\Http\Message\ResponseInterface;
use Zend\Diactoros\Response\HtmlResponse;
@ -43,7 +44,7 @@ class ResponseFactory
$provided = $registration->getProvided();
if (! empty($provided['email']) && $user = User::where(array_only($provided, 'email'))->first()) {
if (! empty($provided['email']) && $user = User::where(Arr::only($provided, 'email'))->first()) {
$user->loginProviders()->create(compact('provider', 'identifier'));
return $this->makeLoggedInResponse($user);

View File

@ -17,6 +17,7 @@ use Flarum\Http\Exception\RouteNotFoundException;
use Flarum\Http\UrlGenerator;
use Flarum\User\User;
use Illuminate\Contracts\View\Factory;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface as Request;
class Discussion
@ -51,12 +52,12 @@ class Discussion
public function __invoke(Document $document, Request $request)
{
$queryParams = $request->getQueryParams();
$page = max(1, array_get($queryParams, 'page'));
$page = max(1, Arr::get($queryParams, 'page'));
$params = [
'id' => (int) array_get($queryParams, 'id'),
'id' => (int) Arr::get($queryParams, 'id'),
'page' => [
'near' => array_get($queryParams, 'near'),
'near' => Arr::get($queryParams, 'near'),
'offset' => ($page - 1) * 20,
'limit' => 20
]
@ -65,7 +66,7 @@ class Discussion
$apiDocument = $this->getApiDocument($request->getAttribute('actor'), $params);
$getResource = function ($link) use ($apiDocument) {
return array_first($apiDocument->included, function ($value) use ($link) {
return Arr::first($apiDocument->included, function ($value) use ($link) {
return $value->type === $link->type && $value->id === $link->id;
});
};

View File

@ -16,6 +16,7 @@ use Flarum\Api\Controller\ListDiscussionsController;
use Flarum\Frontend\Document;
use Flarum\User\User;
use Illuminate\Contracts\View\Factory;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface as Request;
class Index
@ -44,9 +45,9 @@ class Index
{
$queryParams = $request->getQueryParams();
$sort = array_pull($queryParams, 'sort');
$q = array_pull($queryParams, 'q');
$page = array_pull($queryParams, 'page', 1);
$sort = Arr::pull($queryParams, 'sort');
$q = Arr::pull($queryParams, 'q');
$page = Arr::pull($queryParams, 'page', 1);
$sortMap = $this->getSortMap();

View File

@ -16,6 +16,7 @@ use Flarum\Http\SessionAuthenticator;
use Flarum\User\Command\ConfirmEmail;
use Flarum\User\Exception\InvalidConfirmationTokenException;
use Illuminate\Contracts\Bus\Dispatcher;
use Illuminate\Support\Arr;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface;
@ -58,7 +59,7 @@ class ConfirmEmailController implements RequestHandlerInterface
public function handle(Request $request): ResponseInterface
{
try {
$token = array_get($request->getQueryParams(), 'token');
$token = Arr::get($request->getQueryParams(), 'token');
$user = $this->bus->dispatch(
new ConfirmEmail($token)

View File

@ -18,6 +18,7 @@ use Flarum\Http\Rememberer;
use Flarum\Http\SessionAuthenticator;
use Flarum\User\Event\LoggedIn;
use Flarum\User\UserRepository;
use Illuminate\Support\Arr;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface;
@ -65,7 +66,7 @@ class LogInController implements RequestHandlerInterface
{
$actor = $request->getAttribute('actor');
$body = $request->getParsedBody();
$params = array_only($body, ['identification', 'password']);
$params = Arr::only($body, ['identification', 'password']);
$response = $this->apiClient->send(CreateTokenController::class, $actor, [], $params);
@ -79,7 +80,7 @@ class LogInController implements RequestHandlerInterface
event(new LoggedIn($this->users->findOrFail($data->userId), $token));
if (array_get($body, 'remember')) {
if (Arr::get($body, 'remember')) {
$response = $this->rememberer->remember($response, $token);
}
}

View File

@ -20,6 +20,7 @@ use Flarum\User\AssertPermissionTrait;
use Flarum\User\Event\LoggedOut;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Contracts\View\Factory;
use Illuminate\Support\Arr;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface;
@ -94,7 +95,7 @@ class LogOutController implements RequestHandlerInterface
$session = $request->getAttribute('session');
$actor = $request->getAttribute('actor');
$url = array_get($request->getQueryParams(), 'return', $this->app->url());
$url = Arr::get($request->getQueryParams(), 'return', $this->app->url());
// If there is no user logged in, return to the index.
if ($actor->isGuest()) {
@ -105,8 +106,8 @@ class LogOutController implements RequestHandlerInterface
// allow the user to press a button to complete the log out process.
$csrfToken = $session->token();
if (array_get($request->getQueryParams(), 'token') !== $csrfToken) {
$return = array_get($request->getQueryParams(), 'return');
if (Arr::get($request->getQueryParams(), 'token') !== $csrfToken) {
$return = Arr::get($request->getQueryParams(), 'return');
$view = $this->view->make('flarum.forum::log-out')
->with('url', $this->url->to('forum')->route('logout').'?token='.$csrfToken.($return ? '&return='.urlencode($return) : ''));

View File

@ -16,6 +16,7 @@ use Flarum\Http\Controller\AbstractHtmlController;
use Flarum\User\Exception\InvalidConfirmationTokenException;
use Flarum\User\PasswordToken;
use Illuminate\Contracts\View\Factory;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface as Request;
class ResetPasswordController extends AbstractHtmlController
@ -40,7 +41,7 @@ class ResetPasswordController extends AbstractHtmlController
*/
public function render(Request $request)
{
$token = array_get($request->getQueryParams(), 'token');
$token = Arr::get($request->getQueryParams(), 'token');
$token = PasswordToken::findOrFail($token);

View File

@ -18,6 +18,7 @@ use Flarum\User\PasswordToken;
use Flarum\User\UserValidator;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Contracts\Validation\Factory;
use Illuminate\Support\Arr;
use Illuminate\Support\MessageBag;
use Illuminate\Validation\ValidationException;
use Psr\Http\Message\ResponseInterface;
@ -72,9 +73,9 @@ class SavePasswordController implements RequestHandlerInterface
{
$input = $request->getParsedBody();
$token = PasswordToken::findOrFail(array_get($input, 'passwordToken'));
$token = PasswordToken::findOrFail(Arr::get($input, 'passwordToken'));
$password = array_get($input, 'password');
$password = Arr::get($input, 'password');
try {
// todo: probably shouldn't use the user validator for this,

View File

@ -13,6 +13,7 @@ namespace Flarum\Foundation;
use Flarum\Foundation\Event\Validating;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Support\Arr;
use Illuminate\Validation\Factory;
use Illuminate\Validation\ValidationException;
use Symfony\Component\Translation\TranslatorInterface;
@ -89,7 +90,7 @@ abstract class AbstractValidator
*/
protected function makeValidator(array $attributes)
{
$rules = array_only($this->getRules(), array_keys($attributes));
$rules = Arr::only($this->getRules(), array_keys($attributes));
$validator = $this->validator->make($attributes, $rules, $this->getMessages());

View File

@ -127,7 +127,7 @@ class Application extends Container implements ApplicationContract
*/
public function config($key, $default = null)
{
return array_get($this->make('flarum.config'), $key, $default);
return Arr::get($this->make('flarum.config'), $key, $default);
}
/**
@ -149,7 +149,7 @@ class Application extends Container implements ApplicationContract
public function url($path = null)
{
$config = $this->make('flarum.config');
$url = array_get($config, 'url', array_get($_SERVER, 'REQUEST_URI'));
$url = Arr::get($config, 'url', Arr::get($_SERVER, 'REQUEST_URI'));
if (is_array($url)) {
if (isset($url[$path])) {
@ -160,7 +160,7 @@ class Application extends Container implements ApplicationContract
}
if ($path) {
$url .= '/'.array_get($config, "paths.$path", $path);
$url .= '/'.Arr::get($config, "paths.$path", $path);
}
return $url;

View File

@ -11,6 +11,7 @@
namespace Flarum\Foundation;
use Illuminate\Support\Str;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
@ -38,7 +39,7 @@ class MaintenanceModeHandler implements RequestHandlerInterface
private function isApiRequest(ServerRequestInterface $request): bool
{
return str_contains(
return Str::contains(
$request->getHeaderLine('Accept'),
'application/vnd.api+json'
);

View File

@ -13,6 +13,7 @@ namespace Flarum\Frontend;
use Flarum\Frontend\Compiler\Source\SourceCollector;
use Flarum\Locale\LocaleManager;
use Illuminate\Support\Arr;
class AddTranslations
{
@ -56,7 +57,7 @@ class AddTranslations
{
$translations = $this->locales->getTranslator()->getCatalogue($locale)->all('messages');
return array_only(
return Arr::only(
$translations,
array_filter(array_keys($translations), $this->filter)
);

View File

@ -14,6 +14,7 @@ namespace Flarum\Frontend\Compiler;
use Flarum\Frontend\Compiler\Source\SourceCollector;
use Flarum\Frontend\Compiler\Source\SourceInterface;
use Illuminate\Contracts\Filesystem\Filesystem;
use Illuminate\Support\Arr;
class RevisionCompiler implements CompilerInterface
{
@ -202,7 +203,7 @@ class RevisionCompiler implements CompilerInterface
if ($this->assetsDir->has(static::REV_MANIFEST)) {
$manifest = json_decode($this->assetsDir->read(static::REV_MANIFEST), true);
return array_get($manifest, $this->filename);
return Arr::get($manifest, $this->filename);
}
return null;

View File

@ -12,6 +12,7 @@
namespace Flarum\Frontend\Content;
use Flarum\Frontend\Document;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface as Request;
class Meta
@ -28,8 +29,8 @@ class Meta
$meta = [
'viewport' => 'width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1',
'description' => array_get($forumApiDocument, 'data.attributes.description'),
'theme-color' => array_get($forumApiDocument, 'data.attributes.themePrimaryColor')
'description' => Arr::get($forumApiDocument, 'data.attributes.description'),
'theme-color' => Arr::get($forumApiDocument, 'data.attributes.themePrimaryColor')
];
return $meta;
@ -39,7 +40,7 @@ class Meta
{
$head = [];
if ($faviconUrl = array_get($document->getForumApiDocument(), 'data.attributes.faviconUrl')) {
if ($faviconUrl = Arr::get($document->getForumApiDocument(), 'data.attributes.faviconUrl')) {
$head['favicon'] = '<link rel="shortcut icon" href="'.e($faviconUrl).'">';
}

View File

@ -14,6 +14,7 @@ namespace Flarum\Frontend;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Arr;
/**
* A view which renders a HTML skeleton for Flarum's frontend app.
@ -147,7 +148,7 @@ class Document implements Renderable
*/
public function render(): string
{
$this->view->share('forum', array_get($this->forumApiDocument, 'data.attributes'));
$this->view->share('forum', Arr::get($this->forumApiDocument, 'data.attributes'));
return $this->makeView()->render();
}
@ -174,7 +175,7 @@ class Document implements Renderable
*/
protected function makeTitle(): string
{
return ($this->title ? $this->title.' - ' : '').array_get($this->forumApiDocument, 'data.attributes.title');
return ($this->title ? $this->title.' - ' : '').Arr::get($this->forumApiDocument, 'data.attributes.title');
}
/**

View File

@ -17,6 +17,7 @@ use Flarum\Group\Group;
use Flarum\Group\GroupValidator;
use Flarum\User\AssertPermissionTrait;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Support\Arr;
class CreateGroupHandler
{
@ -51,10 +52,10 @@ class CreateGroupHandler
$this->assertCan($actor, 'createGroup');
$group = Group::build(
array_get($data, 'attributes.nameSingular'),
array_get($data, 'attributes.namePlural'),
array_get($data, 'attributes.color'),
array_get($data, 'attributes.icon')
Arr::get($data, 'attributes.nameSingular'),
Arr::get($data, 'attributes.namePlural'),
Arr::get($data, 'attributes.color'),
Arr::get($data, 'attributes.icon')
);
$this->events->dispatch(

View File

@ -19,6 +19,7 @@ use Flarum\Group\GroupValidator;
use Flarum\User\AssertPermissionTrait;
use Flarum\User\Exception\PermissionDeniedException;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Support\Arr;
class EditGroupHandler
{
@ -61,7 +62,7 @@ class EditGroupHandler
$this->assertCan($actor, 'edit', $group);
$attributes = array_get($data, 'attributes', []);
$attributes = Arr::get($data, 'attributes', []);
if (isset($attributes['nameSingular']) && isset($attributes['namePlural'])) {
$group->rename($attributes['nameSingular'], $attributes['namePlural']);

View File

@ -14,6 +14,7 @@ namespace Flarum\Http;
use Carbon\Carbon;
use Flarum\Database\AbstractModel;
use Flarum\User\User;
use Illuminate\Support\Str;
/**
* @property string $token
@ -47,7 +48,7 @@ class AccessToken extends AbstractModel
{
$token = new static;
$token->token = str_random(40);
$token->token = Str::random(40);
$token->user_id = $userId;
$token->created_at = Carbon::now();
$token->last_activity_at = Carbon::now();

View File

@ -13,6 +13,7 @@ namespace Flarum\Http;
use Dflydev\FigCookies\SetCookie;
use Flarum\Foundation\Application;
use Illuminate\Support\Arr;
class CookieFactory
{
@ -54,9 +55,9 @@ class CookieFactory
// Get the cookie settings from the config or use the default values
$this->prefix = $app->config('cookie.name', 'flarum');
$this->path = $app->config('cookie.path', array_get($url, 'path') ?: '/');
$this->path = $app->config('cookie.path', Arr::get($url, 'path') ?: '/');
$this->domain = $app->config('cookie.domain');
$this->secure = $app->config('cookie.secure', array_get($url, 'scheme') === 'https');
$this->secure = $app->config('cookie.secure', Arr::get($url, 'scheme') === 'https');
}
/**

View File

@ -14,6 +14,7 @@ namespace Flarum\Http\Middleware;
use Flarum\Api\ApiKey;
use Flarum\Http\AccessToken;
use Flarum\User\User;
use Illuminate\Support\Str;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\MiddlewareInterface as Middleware;
@ -29,7 +30,7 @@ class AuthenticateWithHeader implements Middleware
$parts = explode(';', $headerLine);
if (isset($parts[0]) && starts_with($parts[0], self::TOKEN_PREFIX)) {
if (isset($parts[0]) && Str::startsWith($parts[0], self::TOKEN_PREFIX)) {
$id = substr($parts[0], strlen(self::TOKEN_PREFIX));
if ($key = ApiKey::where('key', $id)->first()) {

View File

@ -11,6 +11,7 @@
namespace Flarum\Http\Middleware;
use Illuminate\Support\Str;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\MiddlewareInterface as Middleware;
@ -20,7 +21,7 @@ class ParseJsonBody implements Middleware
{
public function process(Request $request, Handler $handler): Response
{
if (str_contains($request->getHeaderLine('content-type'), 'json')) {
if (Str::contains($request->getHeaderLine('content-type'), 'json')) {
$input = json_decode($request->getBody(), true);
$request = $request->withParsedBody($input ?: []);

View File

@ -13,6 +13,7 @@ namespace Flarum\Http\Middleware;
use Flarum\Http\AccessToken;
use Flarum\Http\CookieFactory;
use Illuminate\Support\Arr;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\MiddlewareInterface as Middleware;
@ -35,7 +36,7 @@ class RememberFromCookie implements Middleware
public function process(Request $request, Handler $handler): Response
{
$id = array_get($request->getCookieParams(), $this->cookie->getName('remember'));
$id = Arr::get($request->getCookieParams(), $this->cookie->getName('remember'));
if ($id) {
$token = AccessToken::find($id);

View File

@ -12,6 +12,7 @@
namespace Flarum\Http\Middleware;
use Flarum\Locale\LocaleManager;
use Illuminate\Support\Arr;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\MiddlewareInterface as Middleware;
@ -39,7 +40,7 @@ class SetLocale implements Middleware
if ($actor->exists) {
$locale = $actor->getPreference('locale');
} else {
$locale = array_get($request->getCookieParams(), 'locale');
$locale = Arr::get($request->getCookieParams(), 'locale');
}
if ($locale && $this->locales->hasLocale($locale)) {

View File

@ -16,6 +16,7 @@ use Flarum\Http\CookieFactory;
use Illuminate\Contracts\Config\Repository as ConfigRepository;
use Illuminate\Contracts\Session\Session;
use Illuminate\Session\Store;
use Illuminate\Support\Arr;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\MiddlewareInterface as Middleware;
@ -72,7 +73,7 @@ class StartSession implements Middleware
return new Store(
$this->config['cookie'],
$this->handler,
array_get($request->getCookieParams(), $this->cookie->getName($this->config['cookie']))
Arr::get($request->getCookieParams(), $this->cookie->getName($this->config['cookie']))
);
}

View File

@ -14,6 +14,7 @@ namespace Flarum\Install\Console;
use Flarum\Install\AdminUser;
use Flarum\Install\DatabaseConfig;
use Flarum\Install\Installation;
use Illuminate\Support\Str;
use Symfony\Component\Console\Helper\QuestionHelper;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
@ -51,7 +52,7 @@ class UserDataProvider implements DataProviderInterface
$host = $this->ask('Database host:');
$port = 3306;
if (str_contains($host, ':')) {
if (Str::contains($host, ':')) {
list($host, $port) = explode(':', $host, 2);
}

View File

@ -17,6 +17,8 @@ use Flarum\Install\DatabaseConfig;
use Flarum\Install\Installation;
use Flarum\Install\StepFailed;
use Flarum\Install\ValidationFailed;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface;
@ -60,9 +62,9 @@ class InstallController implements RequestHandlerInterface
->databaseConfig($this->makeDatabaseConfig($input))
->adminUser($this->makeAdminUser($input))
->settings([
'forum_title' => array_get($input, 'forumTitle'),
'forum_title' => Arr::get($input, 'forumTitle'),
'mail_from' => 'noreply@'.preg_replace('/^www\./i', '', parse_url($baseUrl, PHP_URL_HOST)),
'welcome_title' => 'Welcome to '.array_get($input, 'forumTitle'),
'welcome_title' => 'Welcome to '.Arr::get($input, 'forumTitle'),
])
->build();
} catch (ValidationFailed $e) {
@ -83,10 +85,10 @@ class InstallController implements RequestHandlerInterface
private function makeDatabaseConfig(array $input): DatabaseConfig
{
$host = array_get($input, 'mysqlHost');
$host = Arr::get($input, 'mysqlHost');
$port = 3306;
if (str_contains($host, ':')) {
if (Str::contains($host, ':')) {
list($host, $port) = explode(':', $host, 2);
}
@ -94,10 +96,10 @@ class InstallController implements RequestHandlerInterface
'mysql',
$host,
intval($port),
array_get($input, 'mysqlDatabase'),
array_get($input, 'mysqlUsername'),
array_get($input, 'mysqlPassword'),
array_get($input, 'tablePrefix')
Arr::get($input, 'mysqlDatabase'),
Arr::get($input, 'mysqlUsername'),
Arr::get($input, 'mysqlPassword'),
Arr::get($input, 'tablePrefix')
);
}
@ -109,16 +111,16 @@ class InstallController implements RequestHandlerInterface
private function makeAdminUser(array $input): AdminUser
{
return new AdminUser(
array_get($input, 'adminUsername'),
Arr::get($input, 'adminUsername'),
$this->getConfirmedAdminPassword($input),
array_get($input, 'adminEmail')
Arr::get($input, 'adminEmail')
);
}
private function getConfirmedAdminPassword(array $input): string
{
$password = array_get($input, 'adminPassword');
$confirmation = array_get($input, 'adminPasswordConfirmation');
$password = Arr::get($input, 'adminPassword');
$confirmation = Arr::get($input, 'adminPasswordConfirmation');
if ($password !== $confirmation) {
throw new ValidationFailed('The admin password did not match its confirmation.');

View File

@ -15,6 +15,7 @@ use Flarum\Install\DatabaseConfig;
use Flarum\Install\Step;
use Illuminate\Database\Connectors\MySqlConnector;
use Illuminate\Database\MySqlConnection;
use Illuminate\Support\Str;
use RangeException;
class ConnectToDatabase implements Step
@ -40,7 +41,7 @@ class ConnectToDatabase implements Step
$version = $pdo->query('SELECT VERSION()')->fetchColumn();
if (str_contains($version, 'MariaDB')) {
if (Str::contains($version, 'MariaDB')) {
if (version_compare($version, '10.0.5', '<')) {
throw new RangeException('MariaDB version too low. You need at least MariaDB 10.0.5');
}

View File

@ -11,6 +11,8 @@
namespace Flarum\Locale;
use Illuminate\Support\Arr;
class LocaleManager
{
/**
@ -74,12 +76,12 @@ class LocaleManager
public function getJsFiles(string $locale): array
{
$files = array_get($this->js, $locale, []);
$files = Arr::get($this->js, $locale, []);
$parts = explode('-', $locale);
if (count($parts) > 1) {
$files = array_merge(array_get($this->js, $parts[0], []), $files);
$files = array_merge(Arr::get($this->js, $parts[0], []), $files);
}
return $files;
@ -92,12 +94,12 @@ class LocaleManager
public function getCssFiles(string $locale): array
{
$files = array_get($this->css, $locale, []);
$files = Arr::get($this->css, $locale, []);
$parts = explode('-', $locale);
if (count($parts) > 1) {
$files = array_merge(array_get($this->css, $parts[0], []), $files);
$files = array_merge(Arr::get($this->css, $parts[0], []), $files);
}
return $files;

View File

@ -16,6 +16,7 @@ use Flarum\Database\AbstractModel;
use Flarum\Event\ScopeModelVisibility;
use Flarum\User\User;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Arr;
/**
* Models a notification record in the database.
@ -104,7 +105,7 @@ class Notification extends AbstractModel
*/
public function getSubjectModelAttribute()
{
return $this->type ? array_get(static::$subjectModels, $this->type) : null;
return $this->type ? Arr::get(static::$subjectModels, $this->type) : null;
}
/**

View File

@ -18,6 +18,7 @@ use Flarum\Post\PostRepository;
use Flarum\Post\PostValidator;
use Flarum\User\AssertPermissionTrait;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Support\Arr;
class EditPostHandler
{
@ -59,7 +60,7 @@ class EditPostHandler
$post = $this->posts->findOrFail($command->postId, $actor);
if ($post instanceof CommentPost) {
$attributes = array_get($data, 'attributes', []);
$attributes = Arr::get($data, 'attributes', []);
if (isset($attributes['content'])) {
$this->assertCan($actor, 'edit', $post);

View File

@ -20,6 +20,7 @@ use Flarum\Post\Event\Saving;
use Flarum\Post\PostValidator;
use Flarum\User\AssertPermissionTrait;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Support\Arr;
class PostReplyHandler
{
@ -86,12 +87,12 @@ class PostReplyHandler
// opportunity to alter the post entity based on data in the command.
$post = CommentPost::reply(
$discussion->id,
array_get($command->data, 'attributes.content'),
Arr::get($command->data, 'attributes.content'),
$actor->id,
$command->ipAddress
);
if ($actor->isAdmin() && ($time = array_get($command->data, 'attributes.createdAt'))) {
if ($actor->isAdmin() && ($time = Arr::get($command->data, 'attributes.createdAt'))) {
$post->created_at = new Carbon($time);
}

View File

@ -11,6 +11,8 @@
namespace Flarum\Search;
use Illuminate\Support\Str;
trait ApplySearchParametersTrait
{
/**
@ -29,10 +31,10 @@ trait ApplySearchParametersTrait
foreach ($sort as $field => $order) {
if (is_array($order)) {
foreach ($order as $value) {
$search->getQuery()->orderByRaw(snake_case($field).' != ?', [$value]);
$search->getQuery()->orderByRaw(Str::snake($field).' != ?', [$value]);
}
} else {
$search->getQuery()->orderBy(snake_case($field), $order);
$search->getQuery()->orderBy(Str::snake($field), $order);
}
}
}

View File

@ -11,6 +11,8 @@
namespace Flarum\Settings;
use Illuminate\Support\Arr;
class MemoryCacheSettingsRepository implements SettingsRepositoryInterface
{
protected $inner;
@ -39,7 +41,7 @@ class MemoryCacheSettingsRepository implements SettingsRepositoryInterface
if (array_key_exists($key, $this->cache)) {
return $this->cache[$key];
} elseif (! $this->isCached) {
return array_get($this->all(), $key, $default);
return Arr::get($this->all(), $key, $default);
}
return $default;

View File

@ -11,6 +11,8 @@
namespace Flarum\Settings;
use Illuminate\Support\Arr;
/**
* A settings repository decorator that allows overriding certain values.
*
@ -46,7 +48,7 @@ class OverrideSettingsRepository implements SettingsRepositoryInterface
return $this->overrides[$key];
}
return array_get($this->all(), $key, $default);
return Arr::get($this->all(), $key, $default);
}
public function set($key, $value)

View File

@ -14,6 +14,7 @@ namespace Flarum\Update\Controller;
use Exception;
use Flarum\Database\Console\MigrateCommand;
use Flarum\Foundation\Application;
use Illuminate\Support\Arr;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface;
@ -49,7 +50,7 @@ class UpdateController implements RequestHandlerInterface
{
$input = $request->getParsedBody();
if (array_get($input, 'databasePassword') !== $this->app->config('database.password')) {
if (Arr::get($input, 'databasePassword') !== $this->app->config('database.password')) {
return new HtmlResponse('Incorrect database password.', 500);
}

View File

@ -19,6 +19,7 @@ use Flarum\User\User;
use Flarum\User\UserRepository;
use Flarum\User\UserValidator;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Support\Arr;
use Illuminate\Validation\ValidationException;
class EditUserHandler
@ -64,8 +65,8 @@ class EditUserHandler
$canEdit = $actor->can('edit', $user);
$isSelf = $actor->id === $user->id;
$attributes = array_get($data, 'attributes', []);
$relationships = array_get($data, 'relationships', []);
$attributes = Arr::get($data, 'attributes', []);
$relationships = Arr::get($data, 'relationships', []);
$validate = [];
if (isset($attributes['username'])) {
@ -115,7 +116,7 @@ class EditUserHandler
$newGroupIds = [];
foreach ($relationships['groups']['data'] as $group) {
if ($id = array_get($group, 'id')) {
if ($id = Arr::get($group, 'id')) {
$newGroupIds[] = $id;
}
}

View File

@ -22,6 +22,8 @@ use Flarum\User\RegistrationToken;
use Flarum\User\User;
use Flarum\User\UserValidator;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use Illuminate\Validation\ValidationException;
use Intervention\Image\ImageManager;
@ -75,19 +77,19 @@ class RegisterUserHandler
$this->assertAdmin($actor);
}
$password = array_get($data, 'attributes.password');
$password = Arr::get($data, 'attributes.password');
// If a valid authentication token was provided as an attribute,
// then we won't require the user to choose a password.
if (isset($data['attributes']['token'])) {
$token = RegistrationToken::validOrFail($data['attributes']['token']);
$password = $password ?: str_random(20);
$password = $password ?: Str::random(20);
}
$user = User::register(
array_get($data, 'attributes.username'),
array_get($data, 'attributes.email'),
Arr::get($data, 'attributes.username'),
Arr::get($data, 'attributes.email'),
$password
);
@ -95,7 +97,7 @@ class RegisterUserHandler
$this->applyToken($user, $token);
}
if ($actor->isAdmin() && array_get($data, 'attributes.isEmailConfirmed')) {
if ($actor->isAdmin() && Arr::get($data, 'attributes.isEmailConfirmed')) {
$user->activate();
}

View File

@ -14,6 +14,7 @@ namespace Flarum\User;
use Carbon\Carbon;
use Flarum\Database\AbstractModel;
use Flarum\User\Exception\InvalidConfirmationTokenException;
use Illuminate\Support\Str;
/**
* @property string $token
@ -54,7 +55,7 @@ class EmailToken extends AbstractModel
{
$token = new static;
$token->token = str_random(40);
$token->token = Str::random(40);
$token->user_id = $userId;
$token->email = $email;
$token->created_at = Carbon::now();

View File

@ -13,6 +13,7 @@ namespace Flarum\User;
use Illuminate\Contracts\Auth\Access\Gate as GateContract;
use Illuminate\Contracts\Container\Container;
use Illuminate\Support\Str;
use InvalidArgumentException;
/**
@ -98,7 +99,7 @@ class Gate implements GateContract
{
if (is_callable($callback)) {
$this->abilities[$ability] = $callback;
} elseif (is_string($callback) && str_contains($callback, '@')) {
} elseif (is_string($callback) && Str::contains($callback, '@')) {
$this->abilities[$ability] = $this->buildAbilityCallback($callback);
} else {
throw new InvalidArgumentException("Callback must be a callable or a 'Class@method' string.");

View File

@ -13,6 +13,7 @@ namespace Flarum\User;
use Carbon\Carbon;
use Flarum\Database\AbstractModel;
use Illuminate\Support\Str;
/**
* @property string $token
@ -50,7 +51,7 @@ class PasswordToken extends AbstractModel
{
$token = new static;
$token->token = str_random(40);
$token->token = Str::random(40);
$token->user_id = $userId;
$token->created_at = Carbon::now();

View File

@ -14,6 +14,7 @@ namespace Flarum\User;
use Carbon\Carbon;
use Flarum\Database\AbstractModel;
use Flarum\User\Exception\InvalidConfirmationTokenException;
use Illuminate\Support\Str;
/**
* @property string $token
@ -62,7 +63,7 @@ class RegistrationToken extends AbstractModel
{
$token = new static;
$token->token = str_random(40);
$token->token = Str::random(40);
$token->provider = $provider;
$token->identifier = $identifier;
$token->user_attributes = $attributes;

View File

@ -14,6 +14,7 @@ namespace Flarum\User;
use Flarum\Group\Group;
use Flarum\User\Event\Saving;
use Flarum\User\Exception\PermissionDeniedException;
use Illuminate\Support\Arr;
class SelfDemotionGuard
{
@ -35,7 +36,7 @@ class SelfDemotionGuard
return;
}
$groups = array_get($event->data, 'relationships.groups.data');
$groups = Arr::get($event->data, 'relationships.groups.data');
// If there is no group data (not even an empty array), this means
// groups were not changed (and thus not removed) - we're fine!

View File

@ -37,6 +37,7 @@ use Flarum\User\Event\Registered;
use Flarum\User\Event\Renamed;
use Illuminate\Contracts\Hashing\Hasher;
use Illuminate\Contracts\Session\Session;
use Illuminate\Support\Arr;
/**
* @property int $id
@ -460,7 +461,7 @@ class User extends AbstractModel
return $value['default'];
}, static::$preferences);
$user = array_only((array) json_decode($value, true), array_keys(static::$preferences));
$user = Arr::only((array) json_decode($value, true), array_keys(static::$preferences));
return array_merge($defaults, $user);
}
@ -508,7 +509,7 @@ class User extends AbstractModel
*/
public function getPreference($key, $default = null)
{
return array_get($this->preferences, $key, $default);
return Arr::get($this->preferences, $key, $default);
}
/**