Zjednodušení struktury AdminPresenter
- Rndoom04
- Člen | 75
Zdravím všechny,
jak zjednodušujete, nebo jak by se dala zjednodušit struktura Presenteru?
Vždy to mám na pár řádků, ale například AdminPresenter (byť není
velký) mám na 2000 řádků a pak se v tom ztrácím – hlavně ve
formulářích.
Spíš mi jde o to, jestli nějakým způsobem lze jednotlivé formuláře zvlášť uložit do nějakého souboru a jen ho v tom místě nějak includnout.
Nyní to mám takto:
public function renderNeco() {/** some magic **/}
public function renderNecoJineho() {/** some magic **/}
// Handlery
public function handleNejakyHandler(){/** some magic **/}
// Formuláře
public function createComponentNejakyForm(){/** 100 řádků **/}
public function createComponentNejakyJinyForm(){/** 400 řádků **/}
public function createComponentNejakyDalsiForm(){/** 300 řádků **/}
Jak bych si to představoval:
public function renderNeco() {/** some magic **/}
public function renderNecoJineho() {/** some magic **/}
// Handlery
public function handleNejakyHandle(){/** some magic **/}
// Formuláře
// „include” cesta/k/souboru/admin/nejakyForm.php
// „include” cesta/k/souboru/admin/nejakyJinyForm.php
// „include” cesta/k/souboru/admin/nejakyDalsiForm.php
Netuším, jak vložit pouze funkce do třídy přes externí soubory. V procedurálce bych s tím neměl problém. :)
Díky všem za popohnání. :)
- Martk
- Člen | 661
V sandboxu je krásný příklad:
Presenter – https://github.com/…resenter.php
Formuláře – https://github.com/…er/app/Forms
- Šaman
- Člen | 2667
Tohle bych přes traity nedělal. Definice formuláře v samostatném souboru je fajn, já osobně preferuji mít formulář hned u entity ke které se váže (u silně ORM aplikací), protože změna entity většinou znamená i nutnost upravit formulář.
V presenteru pak zůstane createComponentNejakyForm()
jen
s několika řádky – typicky se nastaví cíl pro redirect a flashmessage.
A actionEditNejaky()
se pak načtou defaultní hodnoty. Presenter
je tedy krátký: action metody často nastavují defautlni hodnoty
formulářů, render načte hodnoty z modelu a předá je šabloně,
createComponent vytvoří komponentu z polotovaru. Plus případně nějaké
dotazy na práva, víc tam toho nemívám.
- Rndoom04
- Člen | 75
Martk napsal(a):
V sandboxu je krásný příklad:
Presenter – https://github.com/…resenter.php
Formuláře – https://github.com/…er/app/Forms
Děkuji moc, je to přesně to, co hledám… :)
CZechBoY napsal(a):
Hmmm, AdminPresenter? To tam máš jako celou administraci?
Ano, protože je tam jen pár drobností, co si uživatel sám nastavuje (fotogalerie, psaní aktualit + změna hesla). :)
Editoval Rndoom04 (6. 2. 2020 19:12)