{
    public function check(HomeStatus $home)
    {
        if (!$home->lightsOff) {
            printf("The lights are still on!! Abort abort.\n");
        }
        $this->next($home);
    }
}
/**
 * Class Alarm
 */
class Alarm extends HomeChecker
{
    public function check(HomeStatus $home)
    {
        if (!$home->alarmOn) {
            printf("The alarm has not been set!! Abort abort.\n");
        }
        $this->next($home);
    }
}
// create new instances
$locks = new Locks();
$lights = new Lights();
$alarm = new Alarm();
// set the successor chain
$locks->succeedWith($lights);
$lights->succeedWith($alarm);
// starts off here...
$locks->check(new HomeStatus());
Пример #2
0
<?php

/**
 * Created by PhpStorm.
 * User: B
 * Date: 12/25/2015
 * Time: 12:33 AM
 */
include_once 'HomeData.php';
include_once 'Locks.php';
include_once 'Lights.php';
include_once 'Alarm.php';
$myLocks = new Locks();
$myLights = new Lights();
$myAlarm = new Alarm();
$myLocks->succeedWith($myLights);
$myLights->succeedWith($myAlarm);
$myLocks->check(new HomeData());