store/config/cache.php
Yoga Pangestu 3792424d52
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (8.3) (push) Waiting to run
tests / ci (8.4) (push) Waiting to run
tests / ci (8.5) (push) Waiting to run
fix: enable serializable_classes in cache configuration for improved data handling
2026-07-07 12:32:22 +07:00

225 lines
7.7 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", "storage", "octane",
| "session", "failover", "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'),
],
'storage' => [
'driver' => 'storage',
'disk' => env('CACHE_STORAGE_DISK'),
'path' => env('CACHE_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',
],
'failover' => [
'driver' => 'failover',
'stores' => [
'database',
'array',
],
],
],
/*
|--------------------------------------------------------------------------
| 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((string) env('APP_NAME', 'laravel')).'-cache-'),
/*
|--------------------------------------------------------------------------
| Serializable Classes
|--------------------------------------------------------------------------
|
| This value determines the classes that can be unserialized from cache
| storage. By default, no PHP classes will be unserialized from your
| cache to prevent gadget chain attacks if your APP_KEY is leaked.
|
*/
'serializable_classes' => [
// Core PHP and Laravel Classes
Illuminate\Support\Collection::class,
Illuminate\Database\Eloquent\Collection::class,
Carbon\Carbon::class,
Illuminate\Support\Carbon::class,
stdClass::class,
Illuminate\Database\Eloquent\Relations\Pivot::class,
Illuminate\Database\Eloquent\Relations\MorphPivot::class,
// Spatie Packages Classes
Spatie\Permission\Models\Role::class,
Spatie\Permission\Models\Permission::class,
Spatie\Activitylog\Models\Activity::class,
Spatie\MediaLibrary\MediaCollections\Models\Media::class,
// Application Settings
App\Settings\HomepageSettings::class,
App\Settings\HrSettings::class,
App\Settings\MarketplaceSettings::class,
App\Settings\SocialMediaSettings::class,
App\Settings\SystemSettings::class,
// Application Models
App\Models\Attendance::class,
App\Models\CashAccount::class,
App\Models\CashTransaction::class,
App\Models\Category::class,
App\Models\Customer::class,
App\Models\Cutting::class,
App\Models\CuttingMaterial::class,
App\Models\CuttingMaterialCombination::class,
App\Models\CuttingResult::class,
App\Models\CuttingResultPrice::class,
App\Models\Employee::class,
App\Models\EmployeeAdvance::class,
App\Models\EmployeeAdvancePayment::class,
App\Models\Expense::class,
App\Models\HomepageConfiguration::class,
App\Models\LeaveRequest::class,
App\Models\Notification::class,
App\Models\Order::class,
App\Models\OrderItem::class,
App\Models\OwnerVerificationRequest::class,
App\Models\Payroll::class,
App\Models\PayrollAdjustment::class,
App\Models\PayrollPeriod::class,
App\Models\Product::class,
App\Models\ProductPrice::class,
App\Models\ProductVariant::class,
App\Models\Purchase::class,
App\Models\PurchaseItem::class,
App\Models\PushSubscription::class,
App\Models\RawMaterial::class,
App\Models\RawMaterialPrice::class,
App\Models\Rejection::class,
App\Models\RetailStockHistory::class,
App\Models\StokOpname::class,
App\Models\StokOpnameItem::class,
App\Models\Supplier::class,
App\Models\SystemConfiguration::class,
App\Models\User::class,
App\Models\UserProfile::class,
// Application Enums
App\Enums\ActivityEventLabel::class,
App\Enums\CashTransactionType::class,
App\Enums\CuttingStatus::class,
App\Enums\EmployeeAdvanceStatus::class,
App\Enums\EmploymentStatus::class,
App\Enums\Gender::class,
App\Enums\LeaveRequestStatus::class,
App\Enums\MarketplaceFeeScope::class,
App\Enums\MarketplaceFeeValueType::class,
App\Enums\OrderChannel::class,
App\Enums\OrderStatus::class,
App\Enums\OwnerVerificationAction::class,
App\Enums\OwnerVerificationStatus::class,
App\Enums\PaymentType::class,
App\Enums\PayrollAdjustmentType::class,
App\Enums\PayrollPeriodStatus::class,
App\Enums\PayrollStatus::class,
App\Enums\Permission::class,
App\Enums\PriceType::class,
App\Enums\ProductStockQuality::class,
App\Enums\RawMaterialUnit::class,
App\Enums\Role::class,
App\Enums\StokOpnameStatus::class,
],
];