LINUX.ORG.RU

что бы это значило

 ,


0

2

наткнулся в сети на такой вот замечательный код :

...

public function __destruct()
{
    $_db = $this->__construct();
    $_db->close();

    return $this;
}

это какой-то хитрый трюк специфичный для php?

ps. означенный код - из оф.гайда по ext js, а не просто дети написали

★★★★★

Ну, без строки

$_db = $this->__construct();
было бы ok.
А так смущает.

gwinn ★★★★
()
public function __construct(){
    return true;
}

[/thread]

r_asian ★☆☆
()

Ну что тут не понятного, псоны не осилили в try/catch, поэтому в __construct() создают дескриптор СУБД, если он протух, а второй строчкой прибивают его (и он, видимо, гарантированно не NULL, хотя они опять прошляпили, например, DB cluster are belong to Offline League)

Кстати, я тут с псонами из сенчи немножко поспорил, они упоротые, скажу я тебе.

GateKeeper ★★
()
Ответ на: комментарий от GateKeeper

поэтому в __construct() создают дескриптор СУБД, если он протух, а второй строчкой прибивают его ((и он, видимо, гарантированно не NULL..

он действительно гарантированно не NULL + у них там die в конструкторе на connect_error. Заодно отжирают лишнее соединение и на ровном месте получают «too many connections»:)

они упоротые, скажу я тебе.

это видно :) прямой(кстати повторный) вызов конструктора из деструктора и возврат $this (зачем-то они его из деструктора возвращают - значит собираются использовать).

Есть мнение, что при написании производного класса придётся сначала посетить церковь и шамана, а после психиатора :)

MKuznetsov ★★★★★
() автор топика

ps. означенный код - из оф.гайда по ext js, а не просто дети написали

Судя по коду, таки дети.

VirRaa ★★★
()
Ответ на: комментарий от MKuznetsov

Заодно отжирают лишнее соединение и на ровном месте получают «too many connections»:)

Да, я об этом и говорил, когда утверждал, что они упоротые. Их GXT, например, при всем том, что мне понравилась архитектура, в деталях больше, чем на примерчики на 1-2 контрола или 3-4 колонки (для Grid), не способен. Приходится постоянно точить напильником.

GateKeeper ★★
()

Это точно разрыв шаблона. Вызов конструктора в деструкторе - это нечто феноменальное. По идее они должны были бы просто проверять, не протух ли $_db, а не создавать бездумно новый дескриптор. А вот зачем возвращать из деструктора $this, это вообще не могу понять. Ведь деструктор вызывается при удалении объекта. Что сказать, интересный код...

lucentcode ★★★★★
()

это какой-то хитрый трюк специфичный для php?

Это хитрый трюк, специфичный для индусов, а-ля #define true false.

anonymous
()
Ответ на: комментарий от lucentcode

Что сказать, интересный код...

да что тут интересного?

1. жаваскритщики лабают на коленке простенький бэкенд на пыхе. в js и пыхе ООП сделано-по разному, особенно конструкторы 2. деструктор нужно смотреть в контексте класса (что есть в конструкторе, как они используют класс и т.д.) и документации. 3. конструкторы и деструкторы нарушают официальную сигнатуру, т.к. они должны быть void, а в примере - возвращают this

Итого: перед того, что уверенное знание js + поверхностное знание пыха = говнокод на пыхе

Почему деструктор возвращает $this? Да хоть для fluent language, например. Скорее всего автор притащил в пых свои привычки из JS

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.