Использование статических методов и статического свойства как `global`

Что-то не так с этим примером практики?

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);
}
}

Это мой самый первый тест, который я пишу, я не уверен, считается ли мой тест и подход к нему хорошей практикой.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]