Skip to content

Commit

Permalink
Merge pull request #30 from cslant/feature/Create-a-config-to-overrid…
Browse files Browse the repository at this point in the history
…e-filesystem-#6

feat: Create a config to override filesystem
  • Loading branch information
tanhongit authored Aug 18, 2024
2 parents a77467e + f5af609 commit 2d2ec4e
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 1 deletion.
76 changes: 76 additions & 0 deletions config/filesystems.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
<?php

return [

/*
|--------------------------------------------------------------------------
| Default Filesystem Disk
|--------------------------------------------------------------------------
|
| Here you may specify the default filesystem disk that should be used
| by the framework. The "local" disk, as well as a variety of cloud
| based disks are available to your application. Just store away!
|
*/

'default' => env('FILESYSTEM_DISK', 'local'),

/*
|--------------------------------------------------------------------------
| Filesystem Disks
|--------------------------------------------------------------------------
|
| Here you may configure as many filesystem "disks" as you wish, and you
| may even configure multiple disks of the same driver. Defaults have
| been set up for each driver as an example of the required values.
|
| Supported Drivers: "local", "ftp", "sftp", "s3"
|
*/

'disks' => [

'local' => [
'driver' => 'local',
'root' => storage_path('app'),
'throw' => false,
],

'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
'throw' => false,
],

's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
'throw' => false,
],

],

/*
|--------------------------------------------------------------------------
| Symbolic Links
|--------------------------------------------------------------------------
|
| Here you may configure the symbolic links that will be created when the
| `storage:link` Artisan command is executed. The array keys should be
| the locations of the links and the values should be their targets.
|
*/

'links' => [
public_path('storage') => storage_path('app/public'),
],

];
12 changes: 11 additions & 1 deletion src/Providers/BlogCoreServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,17 @@ protected function registerConfigs(): void

foreach ($files as $file) {
if (pathinfo($file, PATHINFO_EXTENSION) === 'php') {
$this->mergeConfigFrom($configDir . '/' . $file, pathinfo($file, PATHINFO_FILENAME));
$configName = pathinfo($file, PATHINFO_FILENAME);
$configPath = $configDir.'/'.$file;

if (file_exists(config_path($configName.'.php'))) {
config()->set($configName, array_merge(
is_array(config($configName)) ? config($configName) : [],
require $configPath
));
} else {
$this->mergeConfigFrom($configPath, $configName);
}
}
}
}
Expand Down

0 comments on commit 2d2ec4e

Please sign in to comment.