Articles of oop

О области и ООП в PHP

У меня возникли проблемы с пониманием того, как работать с объектами. Конкретный код: class first{ class second{ public function widgets(){ $a_variable = $a_value; } #1 } $second = new second; #2 } #3 $first = new first; Если я инициализирую $a_variable как $a_variable он доступен только внутри функции, правильно? Если я инициализирую $a_varialbe как $this->a_variable […]

Расширение DOMDocument и DOMNode: проблема с объектом возврата

Я пытаюсь расширить класс DOMDocument, чтобы упростить выбор XPath. Я написал этот фрагмент кода: class myDOMDocument extends DOMDocument { function selectNodes($xpath){ $oxpath = new DOMXPath($this); return $oxpath->query($xpath); } function selectSingleNode($xpath){ return $this->selectNodes($xpath)->item(0); } } Эти методы возвращают DOMNodeList и объект DOMNode, соответственно. Теперь я хотел бы реализовать аналогичные методы для объектов DOMNode. Но, очевидно, если […]

абстрактный класс расширяет абстрактный класс в php?

Я работаю над простым абстрактным классом базы данных. В моем использовании этого класса я хочу, чтобы какой-то экземпляр был синглом. Я думал о наличии абстрактного класса, который не является ничем , а затем распространяет его на другой абстрактный класс, который является синглом. Это возможно? Рекомендуемые? Edit: Я хочу иметь два абстрактных, которые практически идентичны, за […]

Удаление всего класса PHP

class foo{ …. } Скажем, что класс существует в моем коде, а затем я больше не нуждаюсь в этом классе и хочу его удалить (поэтому я могу заменить его новым классом позже) Можно ли удалить весь класс из времени выполнения?

Почему я не могу разделить класс на несколько файлов

Я пытаюсь создать класс TestClass который разделен на несколько файлов. Я разделил его на 3 файла, где первый файл TestClassPart1.php имеет начало класса class TestClass { и последний файл TestClassPart3.php имеет закрывающую скобку класса. Это 3 файла //TestClassPart1.php <?php class TestClass { public function func1(){ echo "func 1"; } //TestClassPart2.php <?php public function func2(){ echo […]

PHP Static vs Instance

Я как раз собираюсь написать метод преобразования некоторых биллинговых данных в счет-фактуру. Так что скажите, что у меня есть и массив объектов, содержащих данные, необходимые для создания элементов invocie. В контроллере биллинга Какой из следующих способов правильный $invoice = new Invoice(); $invoice->createInvoiceFromBilling($billingItems); Затем в классе счетов Public Function createInvoiceFromBilling($billingItems) { $this->data = $billingItems; ИЛИ Invoice::createInvoiceFromBilling($billingItems) […]

Контроль доступа к классам в PHP

Мне нужно организовать какой-то контроль доступа к объектным методам, когда он используется в разных контекстах (API в моей системе). Вот пример кода: class A { public function doA(){} public function doB(){} } class APIAClient { public function getA() { return new A(); } } class APIBClient { public function getA() { return new A(); } […]

Как подключиться к MongoDB из другого класса PHP?

У меня есть следующий код для подключения к MongoDB: try { $m = new Mongo('mongodb://'.$MONGO['servers'][$i]['mongo_host'].':'.$MONGO['servers'][$i]['mongo_port']); } catch (MongoConnectionException $e) { die('Failed to connect to MongoDB '.$e->getMessage()); } // select a database $db = $m->selectDB($MONGO["servers"][$i]["mongo_db"]); Затем я создал класс PHP, где я хочу получить / обновить данные в Mongo. Я не знаю, как получить доступ к […]

PHP OOP :: передача ключа сеанса между классами

Я пытаюсь разработать наиболее подходящий дизайн для передачи ключа сеанса между классами в PHP 5.3. Ключ сеанса извлекается из стороннего API, и мое приложение выполняет различные вызовы API, которые все требуют, чтобы этот ключ сеанса был передан. Я создал классы для хранения связанных вызовов API egClass cart содержит методы, которые при вызове будут отсылать запрос […]

Php классы (я думаю)

Есть ли способ создать php-класс (или функцию), который «упрощает» это ucfirst(str_replace('_',' ',html_entity_decode(trim($variable), ENT_QUOTES)))); Переменная $ может «прибывать» из любого места, например глобальная из другой функции или только «стандартная» переменная