Это следующий вопрос к этому вопросу Если я объявлю это как одноэлементный класс: // Server.php class Server { private $stopper; private static $instance; public static getInstance() { if(!isset(self::$Server)) self::$Server = new static(); return self::$Server; } public function setStopper() { $this->stopper = TRUE; } public function startServer() { $self = $this; $consumer = new Consumer(); $consumer->onConsume(function($data) […]
Я новичок в OOP php, теперь я пытаюсь понять общий шаблон, но я ударил где-то в разделе обмена базой данных для всех классов. Я имею в виду этот ответ, который делает соединение db одноэлементным классом и вызывает его в каждом конструкторе. Это класс базы данных singleton, должен выполнить часть подключения, и у меня установлен автозагрузка […]
У меня есть приложение PHP, которое использует AJAX для получения информации – в обратном порядке, он использует однострочный MySQL MySQLi. Запросы AJAX отправляются каждые 0,5 секунды, и они считывают некоторые данные из базы данных и доставляют их как JSON String на веб-сайт. Когда я открываю веб-сайт несколько раз (на разных вкладках), я получаю сообщение об […]
Я заметил, что ключевое слово static в PHP не совсем static . Допустим, Elmo – мой синглтон: class Elmo { private static $instance; private function __construct() { echo 'Elmo says constructor\n'; } public static function getInstance() { if (!isset(self::$instance)) self::$instance = new Elmo(); return self::$instance; } public function boo() { echo 'Elmo says boo!\n'; } […]
У меня есть такая функция: $conf = array ('test_value' => 1, 'test_value2' => 2); function GetValueArray($array, $value) { return $array[$value]; } Я использую эту функцию для получения значения из массива. Моя проблема в том, что я не могу использовать эту функцию следующим образом: GetValueArray('conf', 'test_value'); Как я могу преобразовать 'conf' в реальный массив с именем […]
Я подозревал, что в то время как синглтоны PHP не являются реальными синглонами, поэтому я сделал тест. Я создал следующий класс: class MySingleton { private static $instance; private function __construct() { error_log("I am a new instance of MySingleton. I was instantiated at " . time()); } private function __clone(){} public static function getInstance() { if(!is_object(self::$instance)) […]
Я работаю над простым абстрактным классом базы данных. В моем использовании этого класса я хочу, чтобы какой-то экземпляр был синглом. Я думал о наличии абстрактного класса, который не является ничем , а затем распространяет его на другой абстрактный класс, который является синглом. Это возможно? Рекомендуемые? Edit: Я хочу иметь два абстрактных, которые практически идентичны, за […]
Итак, я всегда реализовал синглтон: class Singleton { private static $_instance = null; public static function getInstance() { if (self::$_instance === null) self::$_instance = new Singleton(); return self::$_instance; } private function __construct() { } } Однако недавно мне показалось, что я мог бы также реализовать его с помощью статических переменных: class Singleton { public static […]
Я установил соединение с базой данных с PDO и одноэлементным шаблоном. Все работает нормально, пока у меня переменная $_db установлена как общедоступная, но она должна быть частной … Когда я делаю это закрытым, я, конечно, получаю сообщение об ошибке: не могу получить доступ к частной базе данных :: $ _ db Может кто-нибудь сказать мне, […]
Может кто-нибудь, пожалуйста, назовите меня пример кода, чтобы установить соединение с базой данных в php, используя одноэлементный класс.