You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PhpSingleton/tests/registry_default.php

42 lines
1.2 KiB
PHP

<?php
/** @noinspection PhpUnhandledExceptionInspection */
/** @noinspection PhpIllegalPsrClassPathInspection */
use jrosset\Singleton\IRegistry;
use jrosset\Singleton\TRegistryDefaultEntryName;
use jrosset\Singleton\TRegistryExternal;
require_once __DIR__ . '/../vendor/autoload.php';
class RegistryDefaultTest implements IRegistry {
use TRegistryExternal, TRegistryDefaultEntryName {
TRegistryDefaultEntryName::getDefaultEntryName insteadof TRegistryExternal;
}
private int $cpt;
private function __construct (int $cpt) {
$this->cpt = $cpt;
}
public function getCpt (): int {
return $this->cpt;
}
public function increment (): void {
$this->cpt++;
}
}
RegistryDefaultTest::addEntry('cpt_1', -5);
RegistryDefaultTest::addEntry('cpt_2', 12);
RegistryDefaultTest::setDefaultEntryName('cpt_1');
var_dump(RegistryDefaultTest::getInstance()->getCpt());
var_dump(RegistryDefaultTest::getInstance('cpt_2')->getCpt());
RegistryDefaultTest::getInstance()->increment();
RegistryDefaultTest::getInstance('cpt_2')->increment();
var_dump(RegistryDefaultTest::getInstance()->getCpt());
var_dump(RegistryDefaultTest::getInstance('cpt_2')->getCpt());