<?php namespace core\services; use core\components\favicon\FaviconGenerator; use core\entities\Settings; use core\forms\SettingsForm; use core\repositories\SettingsRepository; class SettingsService { private $_repository; public function __construct(SettingsRepository $repository) { $this->_repository = $repository; } public function create(SettingsForm $form): Settings { $settings = Settings::create( $form, $form->type, $form->section, $form->key, $form->active ); $this->_repository->save($settings); return $settings; } public function edit($section, $key, SettingsForm $form): void { $settings = $this->_repository->get($section, $key); $settings->edit( $form, $form->type, $form->section, $form->key, $form->active ); $this->_repository->save($settings); } public function remove($section, $key): void { $settings = $this->_repository->get($section, $key); $this->_repository->remove($settings); } public function newFavicon(): void { $fg = new FaviconGenerator(); $fg->generateIcons(); } }