Skip to main content

Application Configuration

Ecom uses Laravel’s configuration system with environment-based settings. All core configuration files are located in the config/ directory.

Core Configuration Files

Application Settings (config/app.php)

The main application configuration is in config/app.php:16:
'name' => env('APP_NAME', 'Laravel'),
'env' => env('APP_ENV', 'production'),
'debug' => env('APP_DEBUG', false),
'url' => env('APP_URL', 'http://localhost'),
'timezone' => env('APP_TIMEZONE', 'UTC'),
'locale' => env('DEFAULT_LANGUAGE', 'en'),
All these values can be overridden in your .env file without modifying the configuration files directly.

Key Configuration Options

Set your application name:
.env
APP_NAME="Your Store Name"
Used in email notifications, page titles, and branding.
.env
APP_ENV=production
APP_DEBUG=false
Never enable APP_DEBUG=true in production! It exposes sensitive information like database credentials and application secrets.
Available environments:
  • local - Development environment
  • staging - Testing environment
  • production - Live environment
.env
APP_URL=https://yourdomain.com
Used for generating absolute URLs in emails and API responses.
.env
APP_TIMEZONE="UTC"
# Or set to your local timezone
APP_TIMEZONE="America/New_York"
APP_TIMEZONE="Asia/Kolkata"
Configured in config/app.php:90
.env
DEFAULT_LANGUAGE=en
The application locale is configured in config/app.php:103:
'locale' => env('DEFAULT_LANGUAGE', 'en'),
'fallback_locale' => 'en',

Security Configuration

Encryption Settings

Ecom uses AES-256-CBC encryption (defined in config/app.php:131):
'key' => env('APP_KEY'),
'cipher' => 'AES-256-CBC',
'system_key' => env('SYSTEM_KEY'),
Security Best Practices:
  • Never share your APP_KEY
  • Generate a unique key for each environment
  • Keep SYSTEM_KEY secure and private

Debug Blacklist

Sensitive data is automatically hidden from debug output (config/app.php:44):
'debug_blacklist' => [
    '_ENV' => [
        'APP_KEY',
        'DB_PASSWORD',
        'REDIS_PASSWORD',
        'MAIL_PASSWORD',
        'PUSHER_APP_KEY',
        'PUSHER_APP_SECRET',
    ],
],

Caching & Performance

Cache Configuration

Configure cache driver in your .env:
.env
CACHE_DRIVER=file
# Or use Redis for better performance
CACHE_DRIVER=redis
Available cache drivers:
  • file - File-based caching (default)
  • redis - Redis cache (recommended for production)
  • memcached - Memcached
  • database - Database caching
  • array - In-memory (testing only)

Queue Configuration

Configure queue connection:
.env
QUEUE_CONNECTION=sync
# For production, use:
QUEUE_CONNECTION=redis
# Or:
QUEUE_CONNECTION=database
Using redis or database queue drivers requires running queue workers:
php artisan queue:work

Session Configuration

.env
SESSION_DRIVER=file
SESSION_LIFETIME=120
Session drivers:
  • file - File-based sessions
  • cookie - Cookie-based sessions
  • database - Database sessions
  • redis - Redis sessions (recommended for production)

Logging Configuration

Configure logging channel:
.env
LOG_CHANNEL=stack
Logs are stored in storage/logs/laravel.log

Service Providers

Ecom includes several pre-configured service providers (config/app.php:146):
'providers' => [
    // Laravel Framework Providers
    Illuminate\Auth\AuthServiceProvider::class,
    Illuminate\Database\DatabaseServiceProvider::class,
    // ... more providers
    
    // Package Providers
    KingFlamez\Rave\RaveServiceProvider::class,
    Spatie\Permission\PermissionServiceProvider::class,
    
    // Application Providers
    App\Providers\AppServiceProvider::class,
    App\Providers\AuthServiceProvider::class,
    App\Providers\EventServiceProvider::class,
    App\Providers\RouteServiceProvider::class,
    App\Providers\ComposerServiceProvider::class,
],

Broadcasting Configuration

.env
BROADCAST_DRIVER=log
# For production with Pusher:
BROADCAST_DRIVER=pusher
PUSHER_APP_ID=your_app_id
PUSHER_APP_KEY=your_app_key
PUSHER_APP_SECRET=your_app_secret
PUSHER_APP_CLUSTER=mt1

Optimization Commands

After making configuration changes, optimize your application:
php artisan optimize:clear
Production Optimization: Always run these commands after deployment:
php artisan config:cache
php artisan route:cache
php artisan view:cache

Custom Configuration

You can add custom configuration files in the config/ directory. Current custom configurations include:
  • flutterwave.php - Flutterwave payment gateway
  • paystack.php - PayStack payment configuration
  • mercadopago.php - MercadoPago settings
  • nagad.php - Nagad payment gateway
  • laravel-payku.php - PayKu integration
  • image.php - Image processing settings

Autoloading Configuration

Custom autoloading is configured in composer.json:59:
"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": ["app/Http/Helpers.php"]
},
After modifying autoload configuration, run:
composer dump-autoload

Next Steps

Environment Setup

Detailed environment variable configuration

Database Setup

Database configuration and migrations

Mail Configuration

Set up email services

Deployment

Deploy to production

Build docs developers (and LLMs) love