Zadejte hledaný výraz...

OOP proměná this

Richard Hutta
verified
rating uzivatele
(1 hodnocení)
6. 12. 2011 22:50:57
Dobrý den řeším problém, stavím aplikaci na architektuře MVC, a chtěl bych do controlleru použít třídu, takže chci použít třídu v třídě, nějak takto,
public function __construct() {
$this->function = new functions;
$this->functions->redirect('http://www.seznam.cz');
}
problém je v tom že php to odmítá, řadí to jako nonobject a nevim jak připůsobbit třídu tak aby to chodilo a zároveň jsem nemusel nic dědit... (include probíhá v v jiném php souboru)
víte někdo ?
6. 12. 2011 22:50:57
https://webtrh.cz/diskuse/oop-promena-this#reply705171
hm
verified
rating uzivatele
(20 hodnocení)
6. 12. 2011 22:54:41
mas tam syntax error, respektive spatne jmeno promenne
$this->function
vs. na dalsim radku
$this->functions
public function __construct() {
$this->function = new functions;
$this->function->redirect('http://www.seznam.cz');
}
priste jako prvni hledej chybu v zapisu u takovych chyb...
btw doufam ze nemas tridu functions a v ni tunu ruznejch fci na vsechno... to rovnou nemusis pouzivat OOP jetsli se nezbavis tohodle proceduralniho blbnuti (takhel se to vazne nedela)
6. 12. 2011 22:54:41
https://webtrh.cz/diskuse/oop-promena-this#reply705170
Richard Hutta
verified
rating uzivatele
(1 hodnocení)
6. 12. 2011 23:10:41
sem pi.a, functions obsahují věci jako postporcces a redirect a další funkce freamworku, i kdyby tam byla tuna fci nevidim důvod proč by to mělo být procedurální blbnutí ? Díky.
A doporučujete pane Jiříčku nějaký freamwork?
6. 12. 2011 23:10:41
https://webtrh.cz/diskuse/oop-promena-this#reply705169
hm
verified
rating uzivatele
(20 hodnocení)
6. 12. 2011 23:28:26
cpat vsechny fce do ejdne tridy je proceduralni blbnuti, protoze si proste nacpete k sobe nesouvisejici fce do univerzalni tridy... kdyz tohle delate, proc proste nezustane u souboru functions.php a tam nedavate fce bez tridy? nebudete muset vytvaret objekt a vyjde to uplne stejne spatne...
jinak FW - kohana, nette, codeigniter, zend, Yii, CakePHP a milion dalsich :) nejvic preferuji prvni 4 zminovane, ale vyber je vazne na tobe, kazdy framework je jiny a ma jine vyhody ale zaroven jsou si vsechny podobne
6. 12. 2011 23:28:26
https://webtrh.cz/diskuse/oop-promena-this#reply705168
Jirka
verified
rating uzivatele
(74 hodnocení)
7. 12. 2011 00:09:31
Napsal joker11cz;730779
functions obsahují věci jako postprocces a redirect a další funkce freamworku, i kdyby tam byla tuna fci nevidim důvod proč by to mělo být procedurální blbnutí ?
protože specifický funkce patří specifickým třídám
definice třídy "functions" bez přídavnýho jména nemá smysl a navíc
- podle toho jak to používáš je functions singleton a volá se jinak
- je jednodušší ty nejzákladnější funkce přímo jako globální funkce, ale redirect to určitě nebude :)
- volat konstruktor třídy aby mě odpálil jinam a nechal všechno byt... no comment
7. 12. 2011 00:09:31
https://webtrh.cz/diskuse/oop-promena-this#reply705167
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
12. 12. 2011 23:28:37
$this->functions->redirect("http://seznam.cz");
je procedurální programování, Aleš má pravdu. OO verze by naopak obsahovala objekt pro request a na něm metodu redirect:
$this->request->redirect("http://seznam.cz");
a takhle je to téměř s každou fcí, OOP je objektech, ne o knihovnách fcí. snahou je organizovat komplexnost do co nejvíce nezávislých jednotek, které následně můžeme upravovat, aniž by došlo k ovlivnění/znefunkčnění jiných částí. v okamžiku, kdy na projektu pracuje více lidí současně je to nedocenitelná vlastnost (čím méně konfliktních změn, tím lépe)
12. 12. 2011 23:28:37
https://webtrh.cz/diskuse/oop-promena-this#reply705166
Pro odpověď se přihlašte.
Přihlásit