namespace base\libs;
class User
{
use patterns\Singleton;
public function getData()
{
}
}
namespace base\patterns;
trait Singleton
{
static private $instance;
private function __construct() {}
private function __clone() {}
private function __wakeup() {}
static public function getInstance()
{
if (empty(static::$instance)) {
static::$instance = new static();
}
return static::$instance;
}
}
namespace base;
$User = libs\User::getInstance();
$User->getData();
use patterns\Singleton;
на use \base\patterns\Singleton;
у меня все равно 3 вызова. // dir /base/libs/';
namespace base\libs;
// file /base/libs/User.php';
class User
{
// file /base/libs/patterns/Singleton.php';
use patterns\Singleton;
//..
}
// dir /base/patterns/';
namespace base\patterns;
// file /base/patterns/Singleton.php';
trait Singleton
{
//..
}
// dir /base/';
// file /base/AnyFile.php';
namespace base;
$User = libs\User::getInstance();
// include /base/libs/User.php;
// ^
// | 200 Ok
// +--------
// call User::getInstance
// include /base/libs/patterns/Singleton.php;
// ---
// ^
// | (Вторая строка "2. base\patterns\Singleton")
// | 404 Not Found.
// |
// | Далее попытка загрузить из глобального namespase
// | include \Singleton
// | (третья строка "3. Singleton !!!")
// +-------------------------------------------------
//
//
// $User->getData();
// 500 Internal Server Error
use base\patterns\Singleton;
use patterns\Singleton;
namespace base\patterns;