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