Articles of singleton

PHP Расширение класса заставляет детей наследовать одно и то же статическое свойство

Я хотел бы начать с показа теста: class A { public static $instance=null; public function __construct(){ self::$instance=$this; } public function className(){ return get_class(self::$instance); } } class B extends A { public function className(){ return get_class(self::$instance); } } // test code $b=new B(); echo $b->className; // B $a=new A(); echo $a->className; // A echo $b->className; // […]

(PHP) Singleton Database Class – как насчет статических методов?

Это базовый веб-сайт. Основываясь на ответах здесь, я делаю это: private $db; public function __construct($id = null) { $this->db = Db::getInstance(); //singleton from the Db class Но если есть статический метод, я не могу использовать переменную объекта. Есть ли что-то лучше, чем вручную указывать переменную db внутри статического метода? public static function someFunction($theID){ $db = […]

MVC и инъекции зависимостей, вынуждены использовать singleton Controller?

Я работаю над созданием фреймворка PHP, который ведет себя в соответствии с принципами MVC и использует инъекцию зависимостей. Я думаю, что у меня есть блок переднего контроллера; существует рабочий маршрутизатор, который создает экземпляр контроллера и вызывает соответствующее действие на основе запрошенного URI. Далее – инъекция зависимостей. Я хочу реализовать контейнер, который разрешает зависимости с помощью […]

Подключение к базе данных с PDO и классом Singleton

Я пытаюсь установить соединение с базой данных с PDO и классом Singleton, но у вас проблемы с получением данных из базы данных. Я читал об этом, но я все еще не уверен, как назвать класс Singelton в моем файле базы данных из другого файла и получить результаты распечатки. Ошибка, которую я получаю прямо сейчас, – […]

PHP Singleton PDO

с http://www.php.net/manual/en/class.pdo.php ###### config.ini ###### db_driver=mysql db_user=root db_password=924892xp [dsn] host=localhost port=3306 dbname=localhost [db_options] PDO::MYSQL_ATTR_INIT_COMMAND=set names utf8 [db_attributes] ATTR_ERRMODE=ERRMODE_EXCEPTION ############ <?php class Database { private static $link = null ; private static function getLink ( ) { if ( self :: $link ) { return self :: $link ; } $ini = _BASE_DIR . "config.ini" ; […]

Расширение синглотонов в PHP

Я работаю в рамках веб-приложения, а часть его состоит из нескольких сервисов, которые реализованы как одиночные. Все они расширяют класс Service, где выполняется однопользовательское поведение, выглядя примерно так: class Service { protected static $instance; public function Service() { if (isset(self::$instance)) { throw new Exception('Please use Service::getInstance.'); } } public static function &getInstance() { if (empty(self::$instance)) […]

Функция статической переменной внутри не может содержать ссылку на singleton

Я заметил странное поведение с синглотами в PHP, нет лучшего способа объяснить это, но с примером. Предположим, у меня есть следующий одноэлементный класс: class Singleton { protected function __construct() { // Deny direct instantion! } protected function __clone() { // Deny cloning! } public static function &Instance() { static $Instance; echo 'Class Echo'.PHP_EOL; var_dump($Instance); if […]

Ошибка наследования шаблона шаблона PHP Singleton

Из класса php singleton ниже <?php class Singleton { /** * @var Singleton The reference to *Singleton* instance of this class */ private static $instance; /** * Returns the *Singleton* instance of this class. * * @return Singleton The *Singleton* instance. */ public static function getInstance() { if (null === static::$instance) { static::$instance = new […]

Статические методы: они все еще плохо относятся к PHP 5.3 поздней статической привязке?

Если вы ищете причины, почему статические методы являются плохими, первое, что вы обнаружите, это потому, что вы не можете переопределить его, когда вы тестируете устройство. Так это все еще верно, учитывая, что в PHP 5.3 вы можете делать все, что хотите, с введением static:: ? Добавить: http://sebastian-bergmann.de/archives/883-Stubbing-and-Mocking-Static-Methods.html Обратите внимание, что он объясняет, как использовать синглтон […]

Синглтон в PHP

я работаю над веб-приложением на PHP, которое требует от пользователей регистрации и входа в систему со своими учетными данными. Тем не менее, я использую singleton шаблон во всех моих файлах PHP-файлов. У меня что-то беспокоит мой разум, который я хотел бы уточнить. Например, когда приложение запускается в прямом эфире, и одновременно у нас есть несколько […]