Presenter: přesun logiky terminate do nové metody sendResponse
- Jan Tvrdík
- Nette guru | 2595
Metoda terminate
již nějakou dobu nemá svůj původní
význam (tj. čisté ukončení životního cyklu aplikace, náhrada za
brutální exit
). Namísto toho slouží primárně k odesílání
IPresenterResponse
. (Lze ji ale stále používat i v původním
významu.)
Navrhuji proto přidat novou metodu sendResponse
(obecná
varianta sendTemplate
a sendPayload
) a metodě
terminate
tak vrátit její původní význam (ačkoliv kvůli
zpětné kompatibilitě asi zůstane možnost posílat
IPresenterResponse
i metodou terminate
).
- Jan Tvrdík
- Nette guru | 2595
BTW: Myslíte, že tohle vlákno je spíš RFC, Feature request nebo Diskuse o vývoji frameworku? Začínám se v těch kategoriích ztrácet.
- westrem
- Člen | 398
Jan Tvrdík napsal(a):
BTW: Myslíte, že tohle vlákno je spíš RFC, Feature request nebo Diskuse o vývoji frameworku? Začínám se v těch kategoriích ztrácet.
Presne to som chcel povodn napisat do svojho prispevku, neviem ako mam plne chapat kategoriu RFC (Request for command), prislo mi, ze ju chce David vyuzivat na veci, ktorych sa ujmu ludia z komunity, prestuduju si problematiku a postnu jej riesenie pripadne uz aj implementaciu a aby sa na to David pozrel – tzn primarna cast prace je v tomto pripade na ludoch z komunity.
Na druhu stranu Feature requests je kategoria, kde clovek postuje co by chcel mat vo FW a podklada to nejakymi argumentami.
Diskusia o vyvoji mi pride vhodna na nejake obsiahlejsie zmeny, BC breaky pripadne to kam smerovat filozofiu FW.
Osobne teda toto tipujem na Feature Request alebo diskusia o vyvoji, a nie RFC, ale ako vravim neviem ako mam spravne chapat RFC kategoriu takze to necham na uvazenie niekomu kto ma vecsi prehlad.
- David Grudl
- Nette Core | 8192
Přeformuluju to jinak: jde o to přejmenovat „terminate“ na „sendResponse“?
- Jan Tvrdík
- Nette guru | 2595
Ne tak úplně. Metodu terminate
bych rád zachoval s jejím
původním významem (tj. ukončením aplikace).
Takže jde o přejmenování metody terminate
na
sendResponse
+ vytvoření nové metody
terminate
:).
/**
* Correctly terminates presenter.
* @return void
* @throws AbortException
*/
public function terminate(IPresenterResponse $response = NULL)
{
if (func_num_args() !== 0) trigger_error('for sending resp. use sendResponse', ...);
$this->response = $response;
throw new AbortException();
}