<?php require_once '../odmconfig.php'; // Foo class class Foo extends \Utility\Singleton { // Bar method public function bar() { echo __CLASS__ . PHP_EOL; } } // Returns a single instance of Foo class $foo = Foo::getInstance(); // Prints: Foo $foo->bar();
public function __destruct() { Foo::getInstance(); }
<?php class Foo { public $foo = 1; public function getInstance() { return $this; } } $objFoo = new Foo(); $objFoo->getInstance()->foo = 2; echo $objFoo->foo;
/** * Test call stack with two middleware */ public function testCallStackWithTwoMiddlewares() { $stack = new Mnlg\Kanda\Stack(); $stack->add('Foo', '123')->add('Foo2'); $stack->call(); $called = new \ReflectionProperty($stack, 'called'); $called->setAccessible(true); $this->assertTrue($called->getValue($stack)); $foo = Foo::getInstance(); $foo2 = Foo2::getInstance(); $this->assertEquals($foo->param, '123'); $this->assertEquals($foo->next, $stack); $this->assertEquals($foo2->next, $foo); }
{ var_dump($this); } } class Foo extends Singleton { } class Bar extends Singleton { } class Baz extends Bar { } $u = Foo::getInstance(); $v = Bar::getInstance(); $w = Baz::getInstance(); $u->identify(); $v->identify(); $w->identify(); $x = Foo::getInstance(); $y = Bar::getInstance(); $z = Baz::getInstance(); $u->identify(); $v->identify(); $w->identify(); $x->identify(); $y->identify(); $z->identify(); ?> ===DONE===
<?php class Foo { public static function getInstance() : self { return new static(); } } class Bar extends Foo { } var_dump(Foo::getInstance()); var_dump(Bar::getInstance());