- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
// seen in real project
class SomeClass extends AnotherClass {
protected $_AnotherClass = null;
public function __construct() {
$this->_AnotherClass = new AnotherClass();
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+167
// seen in real project
class SomeClass extends AnotherClass {
protected $_AnotherClass = null;
public function __construct() {
$this->_AnotherClass = new AnotherClass();
}
}
Сочная вырезка из структуры классов.
Анонимус 20.09.2010 18:57 # −1
shizzard 20.09.2010 19:06 # 0
Анонимус 20.09.2010 19:10 # 0
я имел ввиду -- и что, этот код живет в продакшене?
зачем он?
Я знаю, как работает паттерн wrapper (он же decorator), но тут-то он ничерта не делает!
shizzard 20.09.2010 19:20 # 0
Анонимус 20.09.2010 23:06 # −1
Но ведь в PHP принято давать таблицам префиксы (что бы можно было разместить восемь версий приложения на одной базе, и не платить хостингу два доллара за еще одну базу).
Так что нужно давать классу префикс.
Если представить, что в системе например есть 20 классов, которые надо сохранять в базе, то в мануале можно написать так:
Q: Как мне поддержать префикс таблицы?
A: Создайте класс следующего содержания:
для каждого из классов
Lure Of Chaos 20.09.2010 23:31 # 0
Анонимус 21.09.2010 00:10 # −2
в 5.4 опять уберут
telnet 21.09.2010 08:50 # 0
shizzard 21.09.2010 15:31 # +1
И вообще, вся эта вырвиглазная херня была написана для того чтобы не вносить изменения в существующий код ORM. Да, можно рефакторить, но это, как обычно, "когда-нибудь потом".
Lure Of Chaos 20.09.2010 23:02 # 0
Анонимус 20.09.2010 23:04 # −1
Декоратор должен добавлять новый функционал, а этот ичего не добавляет.
Шиззард уже пояснил -- зачем такое надо.
Lure Of Chaos 20.09.2010 23:37 # 0
Анонимус 21.09.2010 00:10 # −1