DeveloperBreeze

Centralized Logic Development Tutorials, Guides & Insights

Unlock 1+ expert-curated centralized logic tutorials, real-world code snippets, and modern dev strategies. From fundamentals to advanced topics, boost your centralized logic skills on DeveloperBreeze.

Building a Base Controller for Reusable Data Access in Laravel

Tutorial November 16, 2024
php

   namespace App\Http\Controllers;

   use Illuminate\Support\Facades\Auth;

   class BaseController extends Controller
   {
       protected $userRole;
       protected $featureToggles;
       protected $appConfig;

       public function __construct()
       {
           // Set the current user's role
           $this->userRole = Auth::check() ? Auth::user()->role : 'guest';

           // Define feature toggles
           $this->featureToggles = [
               'file_uploads_enabled' => true,
               'comments_enabled' => false,
           ];

           // Set app-wide configurations
           $this->appConfig = [
               'app_mode' => 'live', // Options: 'maintenance', 'live'
               'max_api_requests' => 100,
           ];
       }
   }

Make other controllers extend the Base Controller to inherit its shared properties and logic.