- Laravel 11.51 + PHP 8.4 in backend/
- MySQL 9 connection (DBngin, db: verde)
- Installed Sanctum, Spatie permission/activitylog/model-states,
matanyadaev/laravel-eloquent-spatial
- API routes prefixed /api/v1 in bootstrap/app.php
- Standard response envelope { success, data, message, errors, meta }
via ApiResponse + ApiController base class
- Global exception handlers for validation/auth/not-found/http errors
on api/* routes (always JSON, never redirect to login)
- Extended users migration: uuid, phone+verified_at, role enum
(admin/resident/driver/helper/scanner/store_partner), status,
first/middle/last name, avatar_path, preferred_language, fcm_token,
last_login_at, soft deletes
- User model: HasApiTokens, HasRoles, LogsActivity, SoftDeletes,
role/status constants, auto-uuid on create
- Health endpoint at GET /api/v1/health verifies DB connection
- backend/CLAUDE.md documenting backend conventions
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
109 lines
3.4 KiB
PHP
109 lines
3.4 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Str;
|
|
|
|
return [
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Default Cache Store
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| This option controls the default cache store that will be used by the
|
|
| framework. This connection is utilized if another isn't explicitly
|
|
| specified when running a cache operation inside the application.
|
|
|
|
|
*/
|
|
|
|
'default' => env('CACHE_STORE', 'database'),
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Cache Stores
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Here you may define all of the cache "stores" for your application as
|
|
| well as their drivers. You may even define multiple stores for the
|
|
| same cache driver to group types of items stored in your caches.
|
|
|
|
|
| Supported drivers: "array", "database", "file", "memcached",
|
|
| "redis", "dynamodb", "octane", "null"
|
|
|
|
|
*/
|
|
|
|
'stores' => [
|
|
|
|
'array' => [
|
|
'driver' => 'array',
|
|
'serialize' => false,
|
|
],
|
|
|
|
'database' => [
|
|
'driver' => 'database',
|
|
'connection' => env('DB_CACHE_CONNECTION'),
|
|
'table' => env('DB_CACHE_TABLE', 'cache'),
|
|
'lock_connection' => env('DB_CACHE_LOCK_CONNECTION'),
|
|
'lock_table' => env('DB_CACHE_LOCK_TABLE'),
|
|
],
|
|
|
|
'file' => [
|
|
'driver' => 'file',
|
|
'path' => storage_path('framework/cache/data'),
|
|
'lock_path' => storage_path('framework/cache/data'),
|
|
],
|
|
|
|
'memcached' => [
|
|
'driver' => 'memcached',
|
|
'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
|
|
'sasl' => [
|
|
env('MEMCACHED_USERNAME'),
|
|
env('MEMCACHED_PASSWORD'),
|
|
],
|
|
'options' => [
|
|
// Memcached::OPT_CONNECT_TIMEOUT => 2000,
|
|
],
|
|
'servers' => [
|
|
[
|
|
'host' => env('MEMCACHED_HOST', '127.0.0.1'),
|
|
'port' => env('MEMCACHED_PORT', 11211),
|
|
'weight' => 100,
|
|
],
|
|
],
|
|
],
|
|
|
|
'redis' => [
|
|
'driver' => 'redis',
|
|
'connection' => env('REDIS_CACHE_CONNECTION', 'cache'),
|
|
'lock_connection' => env('REDIS_CACHE_LOCK_CONNECTION', 'default'),
|
|
],
|
|
|
|
'dynamodb' => [
|
|
'driver' => 'dynamodb',
|
|
'key' => env('AWS_ACCESS_KEY_ID'),
|
|
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
|
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
|
'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
|
|
'endpoint' => env('DYNAMODB_ENDPOINT'),
|
|
],
|
|
|
|
'octane' => [
|
|
'driver' => 'octane',
|
|
],
|
|
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Cache Key Prefix
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| When utilizing the APC, database, memcached, Redis, and DynamoDB cache
|
|
| stores, there might be other applications using the same cache. For
|
|
| that reason, you may prefix every cache key to avoid collisions.
|
|
|
|
|
*/
|
|
|
|
'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'),
|
|
|
|
];
|