Skip to content
Snippets Groups Projects
index.php 949 B
Newer Older
<?php

require_once __DIR__ . '/vendor/autoload.php';

use Hp\Patterns\Observer\Card;
use Hp\Patterns\Observer\CardObserver;
use Hp\Patterns\ServiceLocator\RegisterService;
use Hp\Patterns\ServiceLocator\ServiceLocator;
use Hp\Patterns\DependencyInjection\CreditCard;
use Hp\Patterns\DependencyInjection\ATM;


// Service Locator
$locator = new ServiceLocator();
$locator->addInstance('RegisterService', new RegisterService(['user1', 'user2']));

$service = $locator->get('RegisterService');

$service->register('user3');

$users = $service->getUsers();

foreach ($users as $user) {
    echo $user."\n";
}

echo "\n";

// Dependency Injection

$card = new CreditCard('1234 5678 9012 3456', 5281.31, 'Иванов Иван Иванович');
$atm = new ATM($card);

$atm->getCardInfo();

echo "\n";

// Observer

$observer = new CardObserver();

$card = new Card();
$card->attach($observer);

$card->deposit(1000);

$observer->getSumUpdatedCards();