. */ declare(strict_types=1); namespace FireflyIII\Providers; use FireflyIII\Repositories\Category\CategoryRepository; use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use FireflyIII\Repositories\Category\NoCategoryRepository; use FireflyIII\Repositories\Category\NoCategoryRepositoryInterface; use FireflyIII\Repositories\Category\OperationsRepository; use FireflyIII\Repositories\Category\OperationsRepositoryInterface; use FireflyIII\Repositories\UserGroups\Category\CategoryRepository as UserGroupCategoryRepository; use FireflyIII\Repositories\UserGroups\Category\CategoryRepositoryInterface as UserGroupCategoryRepositoryInterface; use Illuminate\Foundation\Application; use Illuminate\Support\ServiceProvider; /** * Class CategoryServiceProvider. */ class CategoryServiceProvider extends ServiceProvider { /** * Bootstrap the application services. */ public function boot(): void {} /** * Register the application services. */ public function register(): void { // phpstan does not understand reference to 'auth'. $this->app->bind( CategoryRepositoryInterface::class, static function (Application $app) { /** @var CategoryRepository $repository */ $repository = app(CategoryRepository::class); if ($app->auth->check()) { // @phpstan-ignore-line $repository->setUser(auth()->user()); } return $repository; } ); // phpstan does not understand reference to 'auth'. $this->app->bind( UserGroupCategoryRepositoryInterface::class, static function (Application $app) { /** @var UserGroupCategoryRepository $repository */ $repository = app(UserGroupCategoryRepository::class); if ($app->auth->check()) { // @phpstan-ignore-line $repository->setUser(auth()->user()); } return $repository; } ); $this->app->bind( OperationsRepositoryInterface::class, static function (Application $app) { /** @var OperationsRepository $repository */ $repository = app(OperationsRepository::class); if ($app->auth->check()) { // @phpstan-ignore-line $repository->setUser(auth()->user()); } return $repository; } ); $this->app->bind( NoCategoryRepositoryInterface::class, static function (Application $app) { /** @var NoCategoryRepository $repository */ $repository = app(NoCategoryRepository::class); if ($app->auth->check()) { // @phpstan-ignore-line $repository->setUser(auth()->user()); } return $repository; } ); } }