File: /var/www/ipsremont-demo/app/Services/Settings/SettingsService.php
<?php
namespace App\Services\Settings;
use App\Http\Requests\Settings\UpdateRequest;
use App\Repository\Settings\SettingsRepository;
class SettingsService
{
protected SettingsRepository $repository;
public function __construct()
{
$this->repository = new SettingsRepository();
}
public static function getField($key): \App\Models\Settings
{
return SettingsRepository::getField($key);
}
public function update(UpdateRequest $request)
{
$this->repository->update($request);
$this->setConfig();
}
protected function setConfig()
{
$from = "<?php
return [
'address' => '{email}',
'name' => '{name}',
];
";
$from = str_replace('{email}', SettingsRepository::getField('email')->value, $from);
$from = str_replace('{name}', SettingsRepository::getField('name')->value, $from);
file_put_contents(base_path() . '/config/from.php', $from);
$smtp = "<?php
return [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => '{email}',
'password' => '{password}',
'timeout' => null,
'auth_mode' => null,
];
";
$smtp = str_replace('{email}', SettingsRepository::getField('email')->value, $smtp);
$smtp = str_replace('{password}', SettingsRepository::getField('password')->value, $smtp);
file_put_contents(base_path() . '/config/smtp.php', $smtp);
}
}