#programowanie #php Mirki mam zadanie stworzyć dwie klasy obsługujące mechanizm obsługi sesji i za pomocą ustawień użytkownika w pliku konfiguracyjnym wybierać odpowiedni mechanizm (pliki/baza danych). ogarnąłem coś takiego ale pewnie to jest bardzo #!$%@? rozwiązanie ( ͡°ʖ̯͡°). Proszę o pomoc :(
@TurboTapir: Możesz sobie zrobić jakiś plik z konfiguracją, gdzie zaznaczysz która klasa jest do czego. I te drivery niech implementują wspólny interfejs. I załóżmy, że robisz coś takiego: $session = new SessionHandler(SessionDriver::factory($config->getDriverClass())); I tym sposobem pozbywasz się raka z kodu.
Za miesiąc idę na 30-stke znajomych. Impreza przebierana w temacie: postacie z filmów, seriali i bajek. Lara Croft to jedyne co mi przychodzi do głowy. Ale to chyba oklepane. Pomóżcie, rzućcie jakieś pomysły please. #pytanie #pomocy #impreza
I załóżmy, że robisz coś takiego:
$session = new SessionHandler(SessionDriver::factory($config->getDriverClass()));
I tym sposobem pozbywasz się raka z kodu.
function __construct(SessionDriver $storageDriver)
{
$this->driver=$storageDriver;
session_set_save_handler(
array($this->driver, 'open'),
array($this->driver, 'close'),
array($this->driver, 'read'),
array($this->driver, 'write'),
array($this->driver, 'destroy'),
array($this->driver, 'gc')
);
}
Ale zamiast takiego czegoś $session = new SessionHandler(SessionDriver::factory($config->getDriverClass()));
postanowiłem stworzyć kontener :
class App
{
private $storageDriver = null;
public function __construct()
{
$SessionDriverClass=SESSION_DRIVER;
$this->storageDriver = new SessionHandler(new $SessionDriverClass());
}
/**
* @return null|SESSION_DRIVER