Articles of oop

Есть ли способ безопасно переопределить класс в PHP?

Мы все знаем, что печально известная ошибка «не может переопределить класс». Есть ли способ преодолеть это и фактически объявить новый класс с тем же именем или это невозможно в PHP 5?

У меня есть класс с 14 статическими методами и 4 статическими свойствами – это плохо?

Я пишу PHP-класс длиной 450 строк и содержит 14 статических методов и 4 статических свойства, а также 6 констант (и частные __construct() и __clone() ). Мне интересно, что я делаю что-то неправильно, это классное зло? Когда вы используете класс, вы всегда вызываете один метод, например: MyClass::coolMethod(); и тогда вы оставите его в одиночестве, так что […]

Недельный админ-модуль Magento пуст

Я создаю настраиваемый модуль администратора, но я не могу поместить в него контент, он всегда пуст, я пытаюсь использовать простой код для теста, но ничего не работает public function indexAction() { $this->loadLayout(); $this->_addContent($this->getLayout()->createBlock('adminhtml/template')->setTemplate('uhmaadmin/contactos.list.phtml')->toHtml()); $this->renderLayout(); } a в .phtml echo 'hello world'; но ничего не печатает, если сделать ошибку в phtml, системный сбой, это означает, что […]

Как получить доступ к объекту, когда имя свойства содержит – (дефис)

Мне нужна escape-последовательность для – или знак минус для php. У объекта есть пара имен и значений, где имя имеет значение – между двумя словами. Я не могу этого сделать, используя стандартную escape-последовательность ( – не документируется). Я могу сохранить имя в $myvariable которое можно использовать, но из любопытства можно сделать следующее? $myobject->myweird-name Это дает […]

Получить все объекты определенного класса

я должен перечислить объекты, являющиеся экземпляром класса, с помощью refrence class Foo {} class Foo1 {} $obj1 = new Foo; $obj2 = new Foo; $obj32 = new Foo1; Мне нужно решение, чтобы получить все объекты, являющиеся экземпляром класса Foo, знаете ли вы, как это сделать?

Список всех объектов определенного класса

Хорошо, моя проблема заключается в следующем: У меня есть класс, описывающий домашнее животное с этим конструктором; public function __construct($name, $type, $age) Итак, что я хочу сделать, это сделать несколько домашних объектов, тогда я хочу напечатать все атрибуты всех объектов этого класса, чтобы он выглядел примерно так Каков наилучший способ этого? Я знаю, как перебирать переменные […]

Как расширить несколько классов полезности

Этот вопрос относится к PHP, но, вероятно, относится и к другим языкам. В PHP вы можете расширить только один класс. Но что, если вам нужно больше классов? Предположим, что у меня есть следующие классы: class MyClass extends Observer, Logger, OtherUtilClass MyClass не может распространять более одного класса. Но он должен быть наблюдателем. И может потребоваться […]

Как получить дочернее имя класса из родительского класса

Я пытаюсь выполнить это, не требуя функции над дочерним классом … возможно ли это? У меня такое чувство, что это не так, но я действительно хочу быть уверенным … <?php class A { public static function who() { echo __CLASS__; } public static function test() { static::who(); // Here comes Late Static Bindings } } […]

Магический метод PHP __call на подклассах

Моя ситуация лучше всего описывается небольшим количеством кода: class Foo { function bar () { echo "called Foo::bar()"; } } class SubFoo extends Foo { function __call($func) { if ($func == "bar") { echo "intercepted bar()!"; } } } $subFoo = new SubFoo(); // what actually happens: $subFoo->bar(); // "called Foo:bar()" // what would be […]

Когда использовать интерфейсы в PHP

Мне всегда было трудно понять реальную ценность интерфейсов при кодировании с объектами в PHP (могли бы быть другие языки, которые я себе представляю) Насколько я понимаю, вы используете Interface для обеспечения соблюдения или гарантии того, что, когда класс использует Interface , этот класс будет иметь методы, определенные в Interface внутри этого класса. Итак, из-за моего […]