Komplexnejší príklad na Nette Framework – ako rozčleniť súbory

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
drick
Člen | 61
+
0
-

Čaute, neviete o nejakom komplexnejšom projekte, ktorý je dostupný, niečo podľa čoho by som videl ako písať v Nette frameworku (rozdelenie do adresárov a pod.). Zatiaľ som si len prešiel quickstart tutorial, no tam to nie je celkom vidieť (napr. tam ani nie je spomenutá vrsta model). Takže, kde by som našiel nejaký projekt? Skúšal som aj github, ale zatiaľ som nič nenašiel. Ďakujem.

Azathoth
Člen | 495
+
0
-

já dělám na poměrně velkém projektu a ve složce app mám složku model (která je i v nette sandboxu, na který je odkaz v quickstartu).
Nevím, jestli je to best practise, ale zatím to působí velmi udržitelně. Také budu vděčný za rady a připomínky.
V modelu mám složky (a podle toho i namespace) rozdělené na několik částí.
Například mám v modelu složky payments, files, confirmationTokens, notifications, a podobné…a v každé z těch složek mám nějakou službu, která zajišťuje všechnu aplikační logiku dané části, složku entities, kde mám doctrine entity a potom jefnu třídu, která mi obstarává databázi a kde si držím entity manager.

drick
Člen | 61
+
0
-

Azathoth napsal(a):

já dělám na poměrně velkém projektu a ve složce app mám složku model (která je i v nette sandboxu, na který je odkaz v quickstartu).
Nevím, jestli je to best practise, ale zatím to působí velmi udržitelně. Také budu vděčný za rady a připomínky.
V modelu mám složky (a podle toho i namespace) rozdělené na několik částí.
Například mám v modelu složky payments, files, confirmationTokens, notifications, a podobné…a v každé z těch složek mám nějakou službu, která zajišťuje všechnu aplikační logiku dané části, složku entities, kde mám doctrine entity a potom jefnu třídu, která mi obstarává databázi a kde si držím entity manager.

A bolo by možné do toho projektu aj nahliadnuť? Ja by som to chcel všetko pokope vidieť, nech tomu lepšie porozumiem.

David Matějka
Moderator | 6445
+
+3
-

https://github.com/…ct-archivist vyuziva doctrinu, kdyby/events atd.

Editoval matej21 (26. 10. 2014 4:49)

drick
Člen | 61
+
0
-

matej21 napsal(a):

https://github.com/…ct-archivist vyuziva doctrinu, kdyby/events atd.

presne niečo takéto som hľadal. Len sa celkom nerozumiem rozloženiu jeho projektu – má tam zložku components (neviem čo to má predstavovať), nevidím tam nikde niečo ako „models“ a celkovo mi to príde tam chaoticky usporiadané. Alebo takto má byť Nette projekt reálne rozložený?

Filip Procházka
Moderator | 4668
+
+6
-

@drick reálně si to rozlož jak chceš :) Já to budu nejspíš ještě maličko měnit. Každopádně tahle struktura mi celkem vyhovuje :)

Nemyslím si že je fajn, strávit půl roku vymýšlením hovadin, když můžu sednout a programovat a struktura se vyvine sama evolucí, tím že si to v praxi otestuju. Jinými slovy, vem si něco co existuje, začni to používat, napiš nějakou aplikaci a až budeš psát další aplikaci, tak třeba budeš vědět jak to udělat lépe. Ale nemá smysl snažit se to udělat na 100% perfektní napoprvé, tím jenom zabiješ měsíce času a nebudeš mít nikdy nic hotového.

Azathoth
Člen | 495
+
0
-

drick napsal(a):

A bolo by možné do toho projektu aj nahliadnuť? Ja by som to chcel všetko pokope vidieť, nech tomu lepšie porozumiem.

Nevím, je to komerční projekt a nechce se mi ho zveřejňovat, ale když ho dostatečně vykuchám, aby tam byly jenom názvy a namespace…tak možná…

drick
Člen | 61
+
0
-

Azathoth napsal(a):

drick napsal(a):

A bolo by možné do toho projektu aj nahliadnuť? Ja by som to chcel všetko pokope vidieť, nech tomu lepšie porozumiem.

Nevím, je to komerční projekt a nechce se mi ho zveřejňovat, ale když ho dostatečně vykuchám, aby tam byly jenom názvy a namespace…tak možná…

To by bolo super, vďaka.

matopeto
Člen | 395
+
0
-

Ako sandbox ako zakladna struktura staci: https://github.com/nette/sandbox

Azathoth
Člen | 495
+
0
-

@matopeto jenže je otázka, jak u velké aplikace (třeba přes 30 tisíc řádků) mít správně strukturovaný model, což sandbox moc neřeší.

David Kudera
Člen | 455
+
0
-

Právě dělám na projektu, který má něco málo přes 85000 řádků (když už to chceš počítat na řádky…). Do nedávna jsem měl všechno tak nějak „poctivě“ uklizený ve složkách jako třeba Entities, Facades, Repositories, Queries apod. Docela dlouho to bylo OK, jenže najednou je třeba těch tříd v jednotlivých složkách hrozně moc, do toho jsem přidal super kdyby/events a později ještě víc super kdyby/rabbitmq (btw díky za ně i za doctrinu). Jenže to bylo pořád, kam ukládat subscribery a kam pak samostatný consumery pro rabbitmq? A nejednou zjišťuji že to vlastně tak nějak nově ukládám všechno podle již výše zmiňovaného projektu

Editoval David Kudera (27. 10. 2014 22:54)

matopeto
Člen | 395
+
0
-

Azathoth napsal(a):

@matopeto jenže je otázka, jak u velké aplikace (třeba přes 30 tisíc řádků) mít správně strukturovaný model, což sandbox moc neřeší.

Chapem, ale tazatel je podla vsetkeho zaciatocnik, prekusavajuci sa tutorialom, ktory nevedel, kde ma vlozit suobry o ktorych sa tam pisalo. Aspon mne to tak prislo. :) U zlozitejsich projektov si clovek s podobnou strukturov tiez vystaci (samozrejme budu tam nejake moduly a pod) ale plus minus moze zachovavat navrhnutu strukturu akurat na viac urovniach

David Ďurika
Člen | 328
+
0
-

ja to mam cca takto:
https://www.dropbox.com/…14.02.56.png?dl=0
na tomto nieje nic vynimocne

ale co sa mi dost osvacsilo je davat presenter a jeho view dohromady:
https://www.dropbox.com/…14.06.48.png?dl=0
pisem ‚male‘ presentery ⇒ kazdy presenter ma len jednu akciu cize v jednotlivych priecnikoch toho vela nieje… presenter + 1–2 .latte subory
Tu este planujem prepisat PresenterFactory aby som nemusel mat cestu FronModule/Login/LoginPresenter.php ale len FronModule/Login/Presenter.php avsak netusim nakolko to bude narocne este som to neriesil…

a este mam jeden experiment prisne dodrzujem feature-based delenie cize miesam model, componenty, sluzby a vsetko ine dokopy https://www.dropbox.com/…14.20.32.png?dl=0 zatial sa to ukazuje ako celkom dobre riesenie

Editoval David Ďurika (29. 10. 2014 14:22)