Что-то не так с этим примером практики?
class Test {
static $_instance = null; // self
protected $_name = null;/**
* Get instance
* @return [type] [description]
*/
public static function getInstance() {
if(is_null(self::$_instance))
self::$_instance = new self;
return self::$_instance;
}
/**
* Set name
*/
public static function setName($name) {
self::getInstance()->_name = $name;
}
public static function getName() {
return self::getInstance()->_name;
}
}
И затем делать это где угодно:
Test::setName('Some name');
Test::getName(); // returns "Some name"
Вместо:
// somewhere early
$test = new Test;
// somewhere else
function someRandomFunction() {
global $test;
$test->setName('Hello there');
}
// somewhere else
function AnotherRandomFunction() {
global $test;
return $test->getName();
}
Я написал тест, который выглядит так:
class TestTest extends WP_UnitTestCase {function testInstance() {
$someName = 'Hello ' . time();
Test::setName($someName);
$this->assertEquals(Test::getName(), $someName);
}
}
Это мой самый первый тест, который я пишу, я не уверен, считается ли мой тест и подход к нему хорошей практикой.
Задача ещё не решена.
Других решений пока нет …