diff --git a/app/Console/Commands/Upgrade/BackToJournals.php b/app/Console/Commands/Upgrade/BackToJournals.php
index 397e6b1930..7f280c839c 100644
--- a/app/Console/Commands/Upgrade/BackToJournals.php
+++ b/app/Console/Commands/Upgrade/BackToJournals.php
@@ -86,9 +86,6 @@ class BackToJournals extends Command
/**
* @return bool
- * @throws FireflyException
- * @throws ContainerExceptionInterface
- * @throws NotFoundExceptionInterface
*/
private function isMigrated(): bool
{
diff --git a/app/Console/Commands/VerifySecurityAlerts.php b/app/Console/Commands/VerifySecurityAlerts.php
index b7ab063619..6c1f9dbf48 100644
--- a/app/Console/Commands/VerifySecurityAlerts.php
+++ b/app/Console/Commands/VerifySecurityAlerts.php
@@ -62,7 +62,8 @@ class VerifySecurityAlerts extends Command
// check for security advisories.
$version = config('firefly.version');
$disk = Storage::disk('resources');
- if (!$disk->has('alerts.json')) {
+ // Next line is ignored because it's a Laravel Facade.
+ if (!$disk->has('alerts.json')) { // @phpstan-ignore-line
Log::debug('No alerts.json file present.');
return 0;
diff --git a/app/Generator/Webhook/StandardMessageGenerator.php b/app/Generator/Webhook/StandardMessageGenerator.php
index 0a5b088ed1..d329ba3533 100644
--- a/app/Generator/Webhook/StandardMessageGenerator.php
+++ b/app/Generator/Webhook/StandardMessageGenerator.php
@@ -111,7 +111,8 @@ class StandardMessageGenerator implements MessageGeneratorInterface
private function generateMessage(Webhook $webhook, Model $model): void
{
$class = get_class($model);
- Log::debug(sprintf('Now in generateMessage(#%d, %s#%d)', $webhook->id, $class, $model->id));
+ // Line is ignored because all of Firefly III's Models have an id property.
+ Log::debug(sprintf('Now in generateMessage(#%d, %s#%d)', $webhook->id, $class, $model->id)); // @phpstan-ignore-line
$uuid = Uuid::uuid4();
$basicMessage = [
@@ -127,7 +128,8 @@ class StandardMessageGenerator implements MessageGeneratorInterface
// depends on the model how user_id is set:
switch ($class) {
default:
- Log::error(sprintf('Webhook #%d was given %s#%d to deal with but can\'t extract user ID from it.', $webhook->id, $class, $model->id));
+ // Line is ignored because all of Firefly III's Models have an id property.
+ Log::error(sprintf('Webhook #%d was given %s#%d to deal with but can\'t extract user ID from it.', $webhook->id, $class, $model->id)); // @phpstan-ignore-line
return;
case TransactionGroup::class:
diff --git a/app/Handlers/Events/UserEventHandler.php b/app/Handlers/Events/UserEventHandler.php
index f5aef259a6..224eb935c6 100644
--- a/app/Handlers/Events/UserEventHandler.php
+++ b/app/Handlers/Events/UserEventHandler.php
@@ -64,8 +64,6 @@ class UserEventHandler
* This method will bestow upon a user the "owner" role if he is the first user in the system.
*
* @param RegisteredUser $event
- *
- * @return bool
*/
public function attachUserRole(RegisteredUser $event): void
{
@@ -83,8 +81,6 @@ class UserEventHandler
* Fires to see if a user is admin.
*
* @param Login $event
- *
- * @return bool
*/
public function checkSingleUserIsAdmin(Login $event): void
{
@@ -113,7 +109,6 @@ class UserEventHandler
/**
* @param RegisteredUser $event
- * @return bool
*/
public function createExchangeRates(RegisteredUser $event): void
{
@@ -124,7 +119,6 @@ class UserEventHandler
/**
* @param RegisteredUser $event
*
- * @return bool
* @throws FireflyException
*/
public function createGroupMembership(RegisteredUser $event): void
@@ -330,7 +324,6 @@ class UserEventHandler
{
Log::debug('Now in storeUserIPAddress');
$user = $event->user;
- /** @var array $preference */
if ($user->hasRole('demo')) {
Log::debug('Do not log demo user logins');
@@ -338,6 +331,7 @@ class UserEventHandler
}
try {
+ /** @var array $preference */
$preference = app('preferences')->getForUser($user, 'login_ip_history', [])->data;
} catch (FireflyException $e) {
// don't care.
diff --git a/app/Helpers/Attachments/AttachmentHelper.php b/app/Helpers/Attachments/AttachmentHelper.php
index 9fe1160c44..18a15bfbb4 100644
--- a/app/Helpers/Attachments/AttachmentHelper.php
+++ b/app/Helpers/Attachments/AttachmentHelper.php
@@ -232,10 +232,10 @@ class AttachmentHelper implements AttachmentHelperInterface
$validation = $this->validateUpload($file, $model);
$attachment = null;
if (false !== $validation) {
- $class = get_class($model);
- $user = $model->user;
- if (PiggyBank::class === $class) {
- $user = $model->account->user;
+ $user = $model->user; // @phpstan-ignore-line
+ // ignore lines about polymorphic calls.
+ if ($model instanceof PiggyBank) {
+ $user = $model->account->user; // @phpstan-ignore-line
}
$attachment = new Attachment(); // create Attachment object.
@@ -372,11 +372,12 @@ class AttachmentHelper implements AttachmentHelperInterface
$name = $file->getClientOriginalName();
$class = get_class($model);
$count = 0;
- if (PiggyBank::class === $class) {
- $count = $model->account->user->attachments()->where('md5', $md5)->where('attachable_id', $model->id)->where('attachable_type', $class)->count();
+ // ignore lines about polymorphic calls.
+ if ($model instanceof PiggyBank) {
+ $count = $model->account->user->attachments()->where('md5', $md5)->where('attachable_id', $model->id)->where('attachable_type', $class)->count(); // @phpstan-ignore-line
}
- if (PiggyBank::class !== $class) {
- $count = $model->user->attachments()->where('md5', $md5)->where('attachable_id', $model->id)->where('attachable_type', $class)->count();
+ if ($model instanceof PiggyBank) {
+ $count = $model->user->attachments()->where('md5', $md5)->where('attachable_id', $model->id)->where('attachable_type', $class)->count(); // @phpstan-ignore-line
}
$result = false;
if ($count > 0) {
diff --git a/app/Helpers/Collector/GroupCollector.php b/app/Helpers/Collector/GroupCollector.php
index 9baeacb073..9f2a980dd1 100644
--- a/app/Helpers/Collector/GroupCollector.php
+++ b/app/Helpers/Collector/GroupCollector.php
@@ -517,19 +517,22 @@ class GroupCollector implements GroupCollectorInterface
$groupArray = [
'id' => (int)$augumentedJournal->transaction_group_id,
'user_id' => (int)$augumentedJournal->user_id,
- 'title' => $augumentedJournal->transaction_group_title,
+ // Field transaction_group_title was added by the query.
+ 'title' => $augumentedJournal->transaction_group_title, // @phpstan-ignore-line
'transaction_type' => $parsedGroup['transaction_type_type'],
'count' => 1,
'sums' => [],
'transactions' => [],
];
- $journalId = (int)$augumentedJournal->transaction_journal_id;
+ // Field transaction_journal_id was added by the query.
+ $journalId = (int)$augumentedJournal->transaction_journal_id; // @phpstan-ignore-line
$groupArray['transactions'][$journalId] = $parsedGroup;
$groups[$groupId] = $groupArray;
continue;
}
// or parse the rest.
- $journalId = (int)$augumentedJournal->transaction_journal_id;
+ // Field transaction_journal_id was added by the query.
+ $journalId = (int)$augumentedJournal->transaction_journal_id; // @phpstan-ignore-line
if (array_key_exists($journalId, $groups[$groupId]['transactions'])) {
// append data to existing group + journal (for multiple tags or multiple attachments)
$groups[$groupId]['transactions'][$journalId] = $this->mergeTags($groups[$groupId]['transactions'][$journalId], $augumentedJournal);
@@ -770,7 +773,6 @@ class GroupCollector implements GroupCollectorInterface
{
$currentCollection = $collection;
/**
- * @var int $i
* @var Closure $function
*/
foreach ($this->postFilters as $function) {
@@ -779,7 +781,7 @@ class GroupCollector implements GroupCollectorInterface
// and save it (or not) in the new collection.
// that new collection is the next current collection
/**
- * @var int $index
+ * @var int $ii
* @var array $item
*/
foreach ($currentCollection as $ii => $item) {
diff --git a/app/Http/Controllers/Account/ReconcileController.php b/app/Http/Controllers/Account/ReconcileController.php
index fd8acc54ce..7ff5ad881d 100644
--- a/app/Http/Controllers/Account/ReconcileController.php
+++ b/app/Http/Controllers/Account/ReconcileController.php
@@ -93,7 +93,7 @@ class ReconcileController extends Controller
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
- public function reconcile(Account $account, Carbon $start = null, Carbon $end = null) // @phpstan-ignore-line
+ public function reconcile(Account $account, Carbon $start = null, Carbon $end = null)
{
if (!$this->isEditableAccount($account)) {
return $this->redirectAccountToAccount($account);
diff --git a/app/Http/Controllers/Account/ShowController.php b/app/Http/Controllers/Account/ShowController.php
index 1417122bba..9adeee99e0 100644
--- a/app/Http/Controllers/Account/ShowController.php
+++ b/app/Http/Controllers/Account/ShowController.php
@@ -91,7 +91,7 @@ class ShowController extends Controller
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
- public function show(Request $request, Account $account, Carbon $start = null, Carbon $end = null) // @phpstan-ignore-line
+ public function show(Request $request, Account $account, Carbon $start = null, Carbon $end = null)
{
$objectType = config(sprintf('firefly.shortNamesByFullName.%s', $account->accountType->type));
diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php
index 9e8ce72d90..c8214251c9 100644
--- a/app/Http/Controllers/Auth/ResetPasswordController.php
+++ b/app/Http/Controllers/Auth/ResetPasswordController.php
@@ -129,7 +129,7 @@ class ResetPasswordController extends Controller
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
- public function showResetForm(Request $request, $token = null) // @phpstan-ignore-line
+ public function showResetForm(Request $request, $token = null)
{
$loginProvider = config('firefly.login_provider');
if ('eloquent' !== $loginProvider) {
diff --git a/app/Http/Controllers/Budget/IndexController.php b/app/Http/Controllers/Budget/IndexController.php
index f04c813ad7..0377016088 100644
--- a/app/Http/Controllers/Budget/IndexController.php
+++ b/app/Http/Controllers/Budget/IndexController.php
@@ -99,7 +99,7 @@ class IndexController extends Controller
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
- public function index(Request $request, Carbon $start = null, Carbon $end = null) // @phpstan-ignore-line
+ public function index(Request $request, Carbon $start = null, Carbon $end = null)
{
Log::debug('Start of IndexController::index()');
diff --git a/app/Http/Controllers/Budget/ShowController.php b/app/Http/Controllers/Budget/ShowController.php
index 111b1c1041..4a206923de 100644
--- a/app/Http/Controllers/Budget/ShowController.php
+++ b/app/Http/Controllers/Budget/ShowController.php
@@ -87,7 +87,7 @@ class ShowController extends Controller
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
- public function noBudget(Request $request, Carbon $start = null, Carbon $end = null)// @phpstan-ignore-line
+ public function noBudget(Request $request, Carbon $start = null, Carbon $end = null)
{
/** @var Carbon $start */
$start = $start ?? session('start');
diff --git a/app/Http/Controllers/Category/NoCategoryController.php b/app/Http/Controllers/Category/NoCategoryController.php
index aa363f3208..9873883387 100644
--- a/app/Http/Controllers/Category/NoCategoryController.php
+++ b/app/Http/Controllers/Category/NoCategoryController.php
@@ -83,7 +83,7 @@ class NoCategoryController extends Controller
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
- public function show(Request $request, Carbon $start = null, Carbon $end = null)// @phpstan-ignore-line
+ public function show(Request $request, Carbon $start = null, Carbon $end = null)
{
Log::debug('Start of noCategory()');
/** @var Carbon $start */
diff --git a/app/Http/Controllers/Category/ShowController.php b/app/Http/Controllers/Category/ShowController.php
index dba00078fb..36f1911d77 100644
--- a/app/Http/Controllers/Category/ShowController.php
+++ b/app/Http/Controllers/Category/ShowController.php
@@ -85,7 +85,7 @@ class ShowController extends Controller
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
- public function show(Request $request, Category $category, Carbon $start = null, Carbon $end = null) // @phpstan-ignore-line
+ public function show(Request $request, Category $category, Carbon $start = null, Carbon $end = null)
{
/** @var Carbon $start */
$start = $start ?? session('start', Carbon::now()->startOfMonth());
diff --git a/app/Http/Controllers/Chart/BudgetController.php b/app/Http/Controllers/Chart/BudgetController.php
index d9138d1894..bedd62688a 100644
--- a/app/Http/Controllers/Chart/BudgetController.php
+++ b/app/Http/Controllers/Chart/BudgetController.php
@@ -205,7 +205,7 @@ class BudgetController extends Controller
*
* @return JsonResponse
*/
- public function expenseAsset(Budget $budget, ?BudgetLimit $budgetLimit = null): JsonResponse // @phpstan-ignore-line
+ public function expenseAsset(Budget $budget, ?BudgetLimit $budgetLimit = null): JsonResponse
{
/** @var GroupCollectorInterface $collector */
$collector = app(GroupCollectorInterface::class);
@@ -273,7 +273,7 @@ class BudgetController extends Controller
*
* @return JsonResponse
*/
- public function expenseCategory(Budget $budget, ?BudgetLimit $budgetLimit = null): JsonResponse // @phpstan-ignore-line
+ public function expenseCategory(Budget $budget, ?BudgetLimit $budgetLimit = null): JsonResponse
{
/** @var GroupCollectorInterface $collector */
$collector = app(GroupCollectorInterface::class);
@@ -337,7 +337,7 @@ class BudgetController extends Controller
*
* @return JsonResponse
*/
- public function expenseExpense(Budget $budget, ?BudgetLimit $budgetLimit = null): JsonResponse // @phpstan-ignore-line
+ public function expenseExpense(Budget $budget, ?BudgetLimit $budgetLimit = null): JsonResponse
{
/** @var GroupCollectorInterface $collector */
$collector = app(GroupCollectorInterface::class);
diff --git a/app/Http/Controllers/CurrencyController.php b/app/Http/Controllers/CurrencyController.php
index cce7d35805..b63cf9030a 100644
--- a/app/Http/Controllers/CurrencyController.php
+++ b/app/Http/Controllers/CurrencyController.php
@@ -300,7 +300,7 @@ class CurrencyController extends Controller
/**
* @param Request $request
- * @return RedirectResponse|Redirector
+ * @return JsonResponse
*/
public function enableCurrency(Request $request): JsonResponse
{
diff --git a/app/Http/Controllers/DebugController.php b/app/Http/Controllers/DebugController.php
index d68892d5dd..50badfc0f5 100644
--- a/app/Http/Controllers/DebugController.php
+++ b/app/Http/Controllers/DebugController.php
@@ -180,7 +180,8 @@ class DebugController extends Controller
// get latest log file:
$logger = Log::driver();
- $handlers = $logger->getHandlers();
+ // PHPstan doesn't recognize the method because of its polymorphic nature.
+ $handlers = $logger->getHandlers(); // @phpstan-ignore-line
$logContent = '';
foreach ($handlers as $handler) {
if ($handler instanceof RotatingFileHandler) {
diff --git a/app/Http/Controllers/Json/FrontpageController.php b/app/Http/Controllers/Json/FrontpageController.php
index 2f618edbac..407b524cba 100644
--- a/app/Http/Controllers/Json/FrontpageController.php
+++ b/app/Http/Controllers/Json/FrontpageController.php
@@ -54,7 +54,7 @@ class FrontpageController extends Controller
// percentage!
$pct = 0;
if (0 !== bccomp($piggyBank->targetamount, '0')) {
- $pct = round(($amount / $piggyBank->targetamount) * 100);
+ $pct = (int)bcmul(bcdiv($amount, $piggyBank->targetamount), '100');
}
$entry = [
diff --git a/app/Http/Controllers/Json/IntroController.php b/app/Http/Controllers/Json/IntroController.php
index 947a19517d..460a9a4780 100644
--- a/app/Http/Controllers/Json/IntroController.php
+++ b/app/Http/Controllers/Json/IntroController.php
@@ -44,7 +44,7 @@ class IntroController extends Controller
*
* @return JsonResponse
*/
- public function getIntroSteps(string $route, string $specificPage = null): JsonResponse // @phpstan-ignore-line
+ public function getIntroSteps(string $route, string $specificPage = null): JsonResponse
{
Log::debug(sprintf('getIntroSteps for route "%s" and page "%s"', $route, $specificPage));
$specificPage = $specificPage ?? '';
@@ -105,7 +105,7 @@ class IntroController extends Controller
* @return JsonResponse
* @throws FireflyException
*/
- public function postEnable(string $route, string $specialPage = null): JsonResponse // @phpstan-ignore-line
+ public function postEnable(string $route, string $specialPage = null): JsonResponse
{
$specialPage = $specialPage ?? '';
$route = str_replace('.', '_', $route);
@@ -129,7 +129,7 @@ class IntroController extends Controller
* @return JsonResponse
* @throws FireflyException
*/
- public function postFinished(string $route, string $specialPage = null): JsonResponse // @phpstan-ignore-line
+ public function postFinished(string $route, string $specialPage = null): JsonResponse
{
$specialPage = $specialPage ?? '';
$key = 'shown_demo_'.$route;
diff --git a/app/Http/Controllers/Json/ReconcileController.php b/app/Http/Controllers/Json/ReconcileController.php
index 68a1338656..a5e8a4527a 100644
--- a/app/Http/Controllers/Json/ReconcileController.php
+++ b/app/Http/Controllers/Json/ReconcileController.php
@@ -85,7 +85,7 @@ class ReconcileController extends Controller
* @throws FireflyException
* @throws JsonException
*/
- public function overview(Request $request, Account $account = null, Carbon $start = null, Carbon $end = null): JsonResponse // @phpstan-ignore-line
+ public function overview(Request $request, Account $account = null, Carbon $start = null, Carbon $end = null): JsonResponse
{
$startBalance = $request->get('startBalance');
$endBalance = $request->get('endBalance');
@@ -226,7 +226,7 @@ class ReconcileController extends Controller
* @throws FireflyException
* @throws JsonException
*/
- public function transactions(Account $account, Carbon $start = null, Carbon $end = null) // @phpstan-ignore-line
+ public function transactions(Account $account, Carbon $start = null, Carbon $end = null)
{
if (null === $start || null === $end) {
throw new FireflyException('Invalid dates submitted.');
diff --git a/app/Http/Controllers/Transaction/DeleteController.php b/app/Http/Controllers/Transaction/DeleteController.php
index 39b6290b64..1daa260bc9 100644
--- a/app/Http/Controllers/Transaction/DeleteController.php
+++ b/app/Http/Controllers/Transaction/DeleteController.php
@@ -87,7 +87,7 @@ class DeleteController extends Controller
}
$objectType = strtolower($journal->transaction_type_type ?? $journal->transactionType->type);
$subTitle = (string)trans('firefly.delete_'.$objectType, ['description' => $group->title ?? $journal->description]);
- $previous = app('steam')->getSafePreviousUrl(route('index'));
+ $previous = app('steam')->getSafePreviousUrl();
// put previous url in session
Log::debug('Will try to remember previous URL');
$this->rememberPreviousUrl('transactions.delete.url');
diff --git a/app/Http/Controllers/Webhooks/DeleteController.php b/app/Http/Controllers/Webhooks/DeleteController.php
index f97bee9492..6ed53c278a 100644
--- a/app/Http/Controllers/Webhooks/DeleteController.php
+++ b/app/Http/Controllers/Webhooks/DeleteController.php
@@ -66,7 +66,7 @@ class DeleteController extends Controller
*/
public function index(Webhook $webhook)
{
- $subTitle = (string)trans('firefly.delete_webhook', ['title' => $webhook->name]);
+ $subTitle = (string)trans('firefly.delete_webhook', ['title' => $webhook->title]);
$this->rememberPreviousUrl('webhooks.delete.url');
return view('webhooks.delete', compact('webhook', 'subTitle'));
diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php
index 1507af86b6..9bbb715417 100644
--- a/app/Http/Middleware/Authenticate.php
+++ b/app/Http/Middleware/Authenticate.php
@@ -122,7 +122,8 @@ class Authenticate
foreach ($guards as $guard) {
if ($this->auth->guard($guard)->check()) {
- return $this->auth->shouldUse($guard);
+ // According to PHPstan the method returns void, but we'll see.
+ return $this->auth->shouldUse($guard); // @phpstan-ignore-line
}
}
diff --git a/app/Mail/InvitationMail.php b/app/Mail/InvitationMail.php
index 65490d9b0f..9f82a8f6f3 100644
--- a/app/Mail/InvitationMail.php
+++ b/app/Mail/InvitationMail.php
@@ -41,7 +41,9 @@ class InvitationMail extends Mailable
/**
* OAuthTokenCreatedMail constructor.
*
- * @param string $ipAddress
+ * @param string $invitee
+ * @param string $admin
+ * @param string $url
*/
public function __construct(string $invitee, string $admin, string $url)
{
diff --git a/resources/assets/js/components/webhooks/Show.vue b/resources/assets/js/components/webhooks/Show.vue
index 1521c7dd4d..00943db856 100644
--- a/resources/assets/js/components/webhooks/Show.vue
+++ b/resources/assets/js/components/webhooks/Show.vue
@@ -37,29 +37,29 @@
{{ title }}
-
+
- Title |
+ Title |
{{ title }} |
- {{ $t('list.active') }} |
+ {{ $t('list.active') }} |
|
- {{ $t('list.trigger') }} |
+ {{ $t('list.trigger') }} |
{{ trigger }} |
- {{ $t('list.response') }} |
+ {{ $t('list.response') }} |
{{ response }} |
- {{ $t('list.delivery') }} |
+ {{ $t('list.delivery') }} |
{{ delivery }} |
@@ -82,7 +82,7 @@
{{ $t('firefly.meta_data') }}
-
+
{{ $t('list.url') }} |
diff --git a/resources/views/admin/users/index.twig b/resources/views/admin/users/index.twig
index d2bc9d5b7a..96e18d05fd 100644
--- a/resources/views/admin/users/index.twig
+++ b/resources/views/admin/users/index.twig
@@ -36,7 +36,7 @@
{{ 'all_users'|_ }}
-
+
|
diff --git a/resources/views/list/ale.twig b/resources/views/list/ale.twig
index e490295275..12263e95e7 100644
--- a/resources/views/list/ale.twig
+++ b/resources/views/list/ale.twig
@@ -1,7 +1,7 @@
-
+
{% for logEntry in logEntries %}
-
+ |
{# link to object: #}
{% if 'FireflyIII\\Models\\Rule' == logEntry.changer_type %}
@@ -9,7 +9,7 @@
{{ logEntry.changer_type|replace({"FireflyIII\\Models\\": ""}) }}
#{{ logEntry.changer_id }}
-
+ |
{{ trans('firefly.ale_action_'~logEntry.action) }}
|
diff --git a/resources/views/recurring/show.twig b/resources/views/recurring/show.twig
index 2d33f380ef..355fada105 100644
--- a/resources/views/recurring/show.twig
+++ b/resources/views/recurring/show.twig
@@ -70,11 +70,11 @@
{% endif %}
-
+
{% for occ in rep.occurrences %}
- {{ occ.date.isoFormat(trans('config.month_and_date_day_js')) }} |
+ {{ occ.date.isoFormat(trans('config.month_and_date_day_js')) }} |
{% if not occ.fired %}
|