Implémentation d'un modèle d'observateur en PHP
只是没有如果
只是没有如果 2018-12-10 00:10:46
0
0
1069

// Fonction d'implémentation : Notifier le module de sécurité et le module de publicité lors de la connexion

// Interface prédéfinie : SplObserver observer et SplSubject observer

class L'utilisateur implémente SplSubject

{

protected $login_num;

protected $hobby ;

protected $_subject;

public function __construct($login_num, $hobby)

{

$this->login_num = $login_num;

$this->hobby = $hobby;

// Stocker l'observateur object

$this->_subject = new SplObjectStorage();

}

public function __get($name)

{

// TODO : Implémenter la méthode __get().

return $this -> $name;

}

public function login()

{

// Opération...

$this->notify();

}

// Interface SplSubject

public function attach( SplObserver $observer)

{

// TODO : Implémenter la méthode attach().

$this->_subject->attach($observer);

}

public function detach(SplObserver $observer)

{

// TODO : Implémenter la méthode detach().

$this->_subject->detach($observer);

}

public function notify()

{

/ / TODO : Implémentez la méthode notify().

foreach ($this->_subject as $observer) {

$observer->update($this);

}

}

}

// L'observateur observe connexion de l'utilisateur ici

// Contrôle de sécurité

class safe implémente SplObserver

{

public function update(SplSubject $subject)

{

// TODO : Implémenter la méthode update().

if ($subject- >login_num > 10) {

echo 'Vous vous êtes connecté plus de 10 fois aujourd'hui. Il se peut qu'il y ait un problème de fuite de mot de passe. ';

} else {

echo 'Aujourd'hui' . $subject->login_num 'Connexion sécurisée ! ';

}

}

}

//Promotion publicitaire

class ad implémente SplObserver

{

public function update(SplSubject $subject)

{

// TODO : Implémenter la méthode update() .

if ($subject->hobby == 'sports') {

echo 'Ceci est une annonce sportive ! ';

} else {

echo 'Annonce aléatoire ! ';

}

}

}

$hobby = ['sports', 'manger', 'boire', 'dormir', 'jouer'];

$user = new User(random_int(1, 20), $hobby[shuffle($hobby)]);

$user->attach(new safe());

$user->attach(new ad());

// Connexion utilisateur Déclenchez une série d'observateurs lorsque

$user->login();


只是没有如果
只是没有如果

répondre à tous(0)
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal