Vzorovy projekt v nette frameworku
- futuretux
- Člen | 24
Po nekolika letech otrociny v psani cisteho PHP jsme se s kolegou rozhodli prehodnotit nas postoj a zacit vyuzivat frameworku. Nette pro nas jako pro cechy asi nejblizsi volba. Narazili jsme ovsem na problem. Hlavni dva zdroje jsou QuickStart a serial na zdrojaku. Obe dve moznosti maji jiste logicke diry, ktere nam zcela znemoznuji si ucelit predstavu a zorientovat se v nekterych – prevazne filosofickych – nejasnostech, ktere nas provazeji. Stejne tak jsou oba vyukove zdroje bohuzel vedeny v trosku odlisnem duchu, takze je zcela nemozne se vysledku domoci porovnanim. A proto tato prosba:
Je tady nejaky dobrotivy vyvojar, ktery by mohl poskytnou zdrojovy kod nejakeho mensiho projektu, vyrobeneho s pomoci nette? Jedna se nam jen o pochopeni nekolika nuanci a zahltit forum kupou dotazu nam s kolegou neprijde jako inteligentni a plodny napad. Navic vymysleni a sepisovani dotazu by zabralo hodiny, otevreni tri souboru a jejich projiti nakonec je otazkou nepomerne mensiho casu. Tak tedy, najde se nekdo, kdo nam pomuze?
Editoval futuretux (15. 7. 2010 20:14)
- scerny
- Člen | 25
Aniž bych chtěl dělat reklamu, tak vám doporučuju školení přímo na Nette https://www.skoleniphp.cz/. Mluvím z vlastní zkušenosti, je to nejlepší způsob jak nejrychleji pochopit tento framework (a nejen to) a ještě si odnesete vzorovou aplikaci, na které se na školení sami podílíte a můžete z ní následně dloudodobě čerpat.
- Cifro
- Člen | 245
futuretux napsal(a):
Narazili jsme ovsem na problem. Hlavni dva zdroje jsou QuickStart a serial na zdrojaku. Obe dve moznosti maji jiste logicke diry, ktere nam zcela znemoznuji si ucelit predstavu a zorientovat se v nekterych – prevazne filosofickych – nejasnostech, ktere nas provazeji. Stejne tak jsou oba vyukove zdroje bohuzel vedeny v trosku odlisnem duchu, takze je zcela nemozne se vysledku domoci porovnanim.
Aktuálne sa vyrába nová dokumentácia a Quick start, takže by veľmi pomohlo keby ste tu tie logické díry a nejasnosti (aj tie filozofické) spísali.
Tu na fóre a na GitHube, je niekoľko hotových aplikácii. Ale Nette je framework a každý programator v ňom programuje inak a preferuje iné techniky, tak by vás to mohlo iba zmiasť a priahli by ste hneď od začiatku po najčistejšom riešení a technikách. A podľa mňa najčistejšie riešenie príde samo po niekoľkých úspešných aj neúspešných iteráciach.
Ale aby som aspoň niečo dal tak:
https://blog.nette.org/ (napr.
Návštevná kniha s Ajaxom, Statický web v Nette, atď…)
Editoval Cifro (15. 7. 2010 21:57)
- srigi
- Nette Blogger | 558
Mna podobne uvahy nedavno viedli k myslienke: „zalozit na fore sekciu – vzorove aplikacie“. V tejto novej sekcii by useri mohli postovat svoje aplikacie, o ktorych si myslia ze ma zmysel sa o ne podelit. Bol by to aj vhodny model podpory – co aplikacia, to thread vo fore. Ludia by si tahali .zip archivy, autor by robil support a komunita by prispievala a zlepsovala aplikaciu.
Co vy na to? Sam uz mam jednu app na post.
- oaki
- Člen | 11
srigi napsal(a):
Mna podobne uvahy nedavno viedli k myslienke: „zalozit na fore sekciu – vzorove aplikacie“. V tejto novej sekcii by useri mohli postovat svoje aplikacie, o ktorych si myslia ze ma zmysel sa o ne podelit. Bol by to aj vhodny model podpory – co aplikacia, to thread vo fore. Ludia by si tahali .zip archivy, autor by robil support a komunita by prispievala a zlepsovala aplikaciu.
Co vy na to? Sam uz mam jednu app na post.
myslim, ze je to dobry napad, urcite by som ho podporil:)
- despiq
- Člen | 320
ja osobne si nemyslim ze by toho bylo napsano malo, naopak, je toho napsano mozna az moc, na skoro kazdy problem se ve foru najde reseni, tak co se tyce nazornych aplikaci, kdyz sem s nette zacinal tak sem chtel presne to same, pak sem se podival do examples a zjistil ze hotove aplikaci nemam sanci porozumet jelikoz nevim jak nette funguje, a proto se mi zda ze to bude prave zpusob psani prasackeho php bez frameworku ktery nici i zpusob uvazovani jak se neco noveho naucit
takze moje rada zni, nahrat skeleton, precist si quick start a tutorialy a pak neco zkusit vytvaret, vsechno ma svuj cas a to ostatni prijde postupne, stejne by ses hned nemel poustet do mega aplikace predtim nez vis co delas
a taky pokud nejsi schopny pochopit nette z dostupnych zdroju nebo tomu nejsi ochotny venovat cas, pak by bylo opravdu nejlepsi podporit Davida v tom co dela a jit na jeho skoleni
- westrem
- Člen | 398
scerny napsal(a):
Aniž bych chtěl dělat reklamu, tak vám doporučuju školení přímo na Nette https://www.skoleniphp.cz/. Mluvím z vlastní zkušenosti, je to nejlepší způsob jak nejrychleji pochopit tento framework (a nejen to) a ještě si odnesete vzorovou aplikaci, na které se na školení sami podílíte a můžete z ní následně dloudodobě čerpat.
Naozaj je to skolenie take dobre? Mam s PHP dost dobre skusenosti, vyvijam v nom uz nejaky ten rok a mam za sebou aj vecsie aplikacie. Doteraz som vsak robil vo vlastnom frameworku, ktory sa mimo ine v niektorych postupoch silne inspiroval Nette. Kedze vsak nie je realna sanca dotiahnut framework vyvijany jednym clovekom na uroven Nette rozhodol som sa v poslednych dnoch, ze prekonvertujem, predsa len Nette mi je najblizsie. Verim vsak, ze po dokladnom citani serialu na Zdrojaku a precitani takmer kazdej stranky v Quick Starte a skumanim kodu dokazem Nette pochopit. Preto sa pytam, je na skolenie predvadzane nieco tak svetaborne, ze by si si naucenie Nette bez toho nevedel predstavit?
srigi napsal:
Mna podobne uvahy nedavno viedli k myslienke: „zalozit na fore sekciu – vzorove aplikacie“. V tejto novej > sekcii by useri mohli postovat svoje aplikacie, o ktorych si myslia ze ma zmysel sa o ne podelit. Bol by to aj vhodny model podpory – co aplikacia, to thread vo fore. Ludia by si tahali .zip archivy, autor by robil support a komunita by prispievala a zlepsovala aplikaciu.Co vy na to? Sam uz mam jednu app na post.
Som rozhodne za. Ano je pravda, ze uplnych zaciatocnikov to moze zmiast, ale nepredpokladam, ze ty by sa vrhali hned na skumanie kodu, ale ze si pekne prejdu serial a quick start. Naopak, ludia co maju MVP© v krvi, rozumeju sa fungovaniu frameworkov, by podla mna uvitali ak by sa mohli pozriet ako vyzera hotova uz fungujuca aplikacia aby rychlejsie ziskali prehlad, mne osobne tiez pomoze ked vidim uceleny kod ako len vystrizky napr. v quick starte. Clovek potom takuto aplikacku otvori v IDE a funguje nejak na DFS a BFS prehladavani kodu :)
Cifro napsal:
Aktuálne sa vyrába nová dokumentácia a Quick start
Chcem sa spytat, nevies nahodou v akom casovom horizonte bude hotova stranka „Jak na moduly?“. Je to jedna z veci, ktore som si chcel najviac precitat a stale neexistuje :(
- LuKo
- Člen | 116
westrem: Ke školení – pokud chceš ušetřit a máš čas, projdi si detailně seriál na Zdrojáku a skoukni všechna videa z Davidových vystoupení na různých akcích. Dnes se dá pomalu stavět už i na vznikající dokumentaci. Pokud máš peníze, ale už ne čas, doporučuji školení. Osobně jsem nejdřív nastudoval videa a pak se přihlásil na školení, což byla chyba. Bohužel jsem měl asi smůlu, že jsem měl ve skupině lidi, kteří nic netušili o Nette ani o jiných FW, takže jsme zase opakovali základy, jako např. všechny elementy formulářů atd. Druhý den se měla dělat vzorová APPka, ale dopoledne jsme jen zkoumali, co vlastně budeme dělat a jak to bude vypadat, odpoledne se pak často zasekávali na nesouvisejících věcech, jak co udělat v jQuery atp. Možná chybějící třetí den by se probírala podrobněji dědičnost šablon, komponenty a moduly. Věřím, že pro začátečníky to mělo velký přínos, pro mě bohužel ztráta času a peněz :-/
despiq: Na fóru se dá najít ledacos, ale pro začátečníka je tu zásadní problém: ví, že potřebuje vyřešit A, najde si to na fóru, použije. Po čase zjistí, že s tím souvisí B, takže zase vyhledá a použije. Po čase zjistí C atd… Přirovnal bych to ke stavění obrázku z puzzle, ale každý dílek bych si chodil kupovat do obchodu zvlášť. Kdežto vzorová APPka by byl složený obrázek (věci A, B, C, D… spolu související pohromadě u sebe), který by si každý rozložil podle svého a zkusil znovu postavit. Z jednotlivých dílků rozházených ve fóru jsem snad už konečně pochopil princip komponent, bohužel stále plavu v modulární struktuře. Ve fóru se sice objevují slovní popisy, jak to kdo má udělané, ale kdyby existoval nějaký skeleton, kde by se dala odkoukat struktura adresářů, způsob registrace jednotlivých modulů do APPky a přihlašování uživatelů, určitě by to pomohlo nejen mně.
- despiq
- Člen | 320
jeste jednou opakuji, ze kdyz sem se poprve kouknul napr na fifteen tak sem vubec nic nepochopil jak a co a k cemu co je, takze si nemyslim ze komplexni aplikace zahrnujici vsechny mozny nettevychytavky by byla zacatecnikovi k necemu dobra, navic by lakalo novacka nejdriv stahnout aplikaci a prochazet a pak se teprv koukat do dokumentace, pripadne si ji nejakym zpusobem ohybat ke chtenemu obrazu bez poradneho pochopeni
modularni struktura na foru popsana je primo Davidem, tam v celku nevidim problem, registraci modulu moc nechapu co tim myslis a prihlasovani uzivatelu je taky solidne popsany v dokumentaci
ted jen vyvstava hlavni otazka, jestli je snaha o to aby se nette framework dokazal naucit i napr podprumerny programator nebo jestli bude miren spis pro ty schopnejsi, jedna vec je zde totiz zrejma, ti nejlepsi nettisti kteri tu na foru jsou aktivni se nette naucili bez poradne dokumentace
Editoval despiq (17. 7. 2010 0:01)
- futuretux
- Člen | 24
Předem se omlouvám, že nebudu reagovat na každého zvlášť, ale vyjádřím se k několika myšlenkám.
Novou dokumentaci bych určitě uvítal – nebo minimálně, neuvěřitelně moc mi chybí, že už od nějakého třetího nebo čtvrtého článku QuickStartu se nepřikládá zip se zdrojáky. V prvních článcích je na nic vidět co se kam zkopírovalo, když zopírovat umím a pak, kdy by byla potřeba nějaká návaznost, tak to chybí.
Dále je problém, že se využívá pouze dibi – do začátku bych potřeboval se čistě soustředit na to, jak ovládnou nette a když ještě do toho musím zkoušet chápat další nástroj je to problém. Zkusil jsem si napsat vlastní objekt jako DB layer (opravdu je jednoduchý nástroj) a narazil jsem zase na problém, že to vůbec nekomunikuje se šablonou.
A asi vůbec největší problém je ten, že neexistuje žádný ucelenější popis funkcí. Na tom jsme se s kolegou shodli. Příručka programátora je fajn věc, ale ale nehovoří se vůbec o důležitých věcech. Když nám třeba nefungoval ten můj DB layer a šablona to prostě nevypisovala, tak jsme se nikde nedomohli informace o tom, v jaké podobě se to má šabloně předat. Nebo nám třeba byli velmi líto, že není nikde pořádně popsaná funkce startup. Nějak jsme s tím experimentovali na základě chyb co nám to házelo a vůbec netušíme, co všechno jsme tím mohli napáchat. Abych to shrnul – třeba článek o prezenteru v příručce. Jo, je fajn, že se člověk dočtě něco o životním cyklu, ale opravdu upřímně mi tam chybí např. ucelenější popis toho, jaké interní fce prezenter nabízí. Náhodou jsem našel startup, nejak si domyslel co dělá. Náhodou jsem našel getModel, a taky si domyslel co dělá, ale opravdu by byl potřeba nějaký seznam, jsou tam tyhle a tyhle fce, musíte jim předat tohle a vyleze vám z toho tohle a tohle. Prostě dokumentace má opravdu díry.
Pokud jde o seminář, tak jsem o něm uvažoval, ale bohužel vzhledem k mému studiu a nedostatku práce by to byla velká zátěž pro mě.
Pokud jde o videa, tak děkuji.. já jsem v kategorii screencasty přehlédl ten link „další videa“, věřím, že to bude vskutku velká pomucka.
Editoval futuretux (17. 7. 2010 9:07)
- Honza Marek
- Člen | 1664
futuretux napsal(a):
Zkusil jsem si napsat vlastní objekt jako DB layer (opravdu je jednoduchý nástroj) a narazil jsem zase na problém, že to vůbec nekomunikuje se šablonou.
Co to znamená?
Náhodou jsem našel getModel, a taky si domyslel co dělá
Takovou funkci jsem nikde neviděl, kde je?
Jinak teď jsem koukal na ten startup a je popsaný opravdu špatně, dokonce i zastarale.
- futuretux
- Člen | 24
Honza Marek napsal(a):
futuretux napsal(a):
Zkusil jsem si napsat vlastní objekt jako DB layer (opravdu je jednoduchý nástroj) a narazil jsem zase na problém, že to vůbec nekomunikuje se šablonou.
Co to znamená?
Náhodou jsem našel getModel, a taky si domyslel co dělá
Takovou funkci jsem nikde neviděl, kde je?
Jinak teď jsem koukal na ten startup a je popsaný opravdu špatně, dokonce i zastarale.
ad Šablona:
prostě a jednoduše jsem naplnil pole tak, aby to odpovidalo tomu foreach a
vubec nic to nevypsalo. Kolega pozdeji prisel na to, ze misto pouziti
$promenna->jmeno funguje $promenna[„jmeno“] ale to asi neni hlavni idea
reseni.
ad getModel:
public function getModel() {
if(!isset($this->model))
$this->model = new Model;
return $this->model;
}
Tuto funkci jsem náhodou našel v nějakém přikladu. Vytváří proměnnou, která nám ukazuje na model. A tady je právě vidět, jaké jsou v dokumentaci díry. Já bych očekával, že si model získám přes konstruktor (to jsem ještě teda nezkoušel, ale předpokládám, že nebude problem). Pak teda se najde zmínka o existenci fce startup a náhodou se objeví fce getModel. Ale nikde k ní není nic řečeno.
Pokud bych mohl apelovat na kohokoliv, kdo se stará o dokumentaci… udělejte aspon soupis základních vlastností. Všechny fce, které nabízí prezenter, pro začátek to stačí… a hodně to usnadní snahu naučit se s nette
- Blizzy
- Člen | 149
futuretux napsal(a):
ad Šablona:
prostě a jednoduše jsem naplnil pole tak, aby to odpovidalo tomu foreach a vubec nic to nevypsalo. Kolega pozdeji prisel na to, ze misto pouziti $promenna->jmeno funguje $promenna[„jmeno“] ale to asi neni hlavni idea reseni.
Záleží na tom, co je proměnná, jestli je $promenna
obyčejný objekt a má veřejné vlastnosti, přistupuješ na ně přes šipku
(->
), jestli je to pole (nebo objekt implementující rozhraní
ArrayAccess), tak k jednotlivým prvkům přistupuješ přes hranaté závorky.
Pokud použiješ Dibi, vrátí ti z databáze DibiRow, a to umožňuje i to
pohodlnější první řešení (myslím, že DibiRow implementuje
i ArrayAccess, a tak můžeš použít i druhý způsob).
V šabloně pracuješ s proměnnými v stejně jako v obyčejném PHP
kódu, žádný layer, který „komunikuje“ nebo „nekomunikuje“
s šablonou není, Nette je na Dibi nezávislé. Pokud umíš
procházet ten tvůj vlastní objekt jako DB layer
v běžné PHP
třídě, zvládneš to i v šabloně.
futuretux napsal(a):
ad getModel:
public function getModel() {
if(!isset($this->model))
$this->model = new Model;return $this->model;
}Tuto funkci jsem náhodou našel v nějakém přikladu. Vytváří proměnnou, která nám ukazuje na model. A tady je právě vidět, jaké jsou v dokumentaci díry. Já bych očekával, že si model získám přes konstruktor (to jsem ještě teda nezkoušel, ale předpokládám, že nebude problem). Pak teda se najde zmínka o existenci fce startup a náhodou se objeví fce getModel. Ale nikde k ní není nic řečeno.
Funkci getModel vůbec nemusíš používat (já jsem tohle řešení taky
ještě nepoužil), můžeš si klidně kdekoliv presenteru použít
$model = new Model;
, nebo si na to napsat jinou metodu, Nette ti
dává v tomhle směru volnost, všeobecně modelovou část aplikace zatím
neřeší. Samotná třída Model taky nemusí být nutně třída připojená
k databázi přes dibi, prostě co si tam napíšeš, to pak použiješ. Nette
aplikace se vůbec nemusí dělat podle nějakého vzoru, framework ti dává
celkem hodně volnosti.
Možná nejasnost, která z toho plyne je, že pokud v presenteru zavoláš
$this->model
, zavolá se automaticky třída
getModel()
, pokud je definovaná. Tahle vlastnost usnadňuje a
zjednodušuje kód, ale může být matoucí. Je to vlastnost zděděná od
Nette\Object, viz https://doc.nette.org/…/smartobject#…,
a funguje to pro všechny proměnné. Jde toho využít i tak, že vlastnost
nemusí být ve třídě vůbec definovaná (nahoře např. jako
public $model;
), ale je možné definovat pouze třídy getModel a
setModel (pokud je potřeba i zapisovat), a kdokoliv třídu používá nic
nepozná.
Quick start je sice nedokončený a neřekl bych, že je zrovna ideální, ale dokumentace obsahuje tuny informací, tutorálů je dost, v distribuci jsou examples (odtud bych hlavně čerpal z CD-collection, podle mě lepší než současný Quick start), zodpovězených otázek je plné celé fórum, a celý kód Nette má stručně zdokumentovanou každou třídu, metodu a vlastnost. Pokud něco nevyčteš z žádného z uvedených zdrojů, můžeš se zeptat.
Editoval Blizzy (17. 7. 2010 14:02)
- futuretux
- Člen | 24
22 napsal(a):
a co API?
https://api.nette.org/…ication.html
Díky, kouknu.
Blizzy napsal(a):
Záleží na tom, co je proměnná, jestli je $promenna obyčejný objekt a má veřejné vlastnosti, přistupuješ na ně přes šipku (->), jestli je to pole (nebo objekt implementující rozhraní ArrayAccess), tak k jednotlivým prvkům přistupuješ přes hranaté závorky. Pokud použiješ Dibi, vrátí ti z databáze DibiRow, a to umožňuje i to pohodlnější první řešení (myslím, že DibiRow implementuje i ArrayAccess, a tak můžeš použít i druhý způsob).
V šabloně pracuješ s proměnnými v stejně jako v obyčejném PHP kódu, žádný layer, který „komunikuje“ nebo „nekomunikuje“ s šablonou není, Nette je na Dibi nezávislé.
Díky, přesně tohle by taky mělo být někde popsané. Sice vím, jak syntaxe → funguje, ale ten příklad mate a není nikde vysvetleno, jak je to myšlené.
Třeba když vidím foreach, čekám obyčejné pole, když tam je → očekávám, že je to nějaký speciální zápis šablonovacího systému. Možná to je moje natvrdlost, ale myslím, že ty příklady by měli být polopatičtější.
Každopádně všem děkuji za dosavadní postřehy, přineslo mi to spoustu odpovědí, podnětů a dalších studijních materiálů. Ovšem zároveň doufám, že i já jsem pro budoucí verze dokumentací přinesl alespoň nějaký podnět, jak ji udělat lépe a radostněji.
Editoval futuretux (17. 7. 2010 17:10)
- Cifro
- Člen | 245
Třeba když vidím foreach, čekám obyčejné pole, když tam je → očekávám, že je to nějaký speciální zápis šablonovacího systému. Možná to je moje natvrdlost, ale myslím, že ty příklady by měli být polopatičtější.
Z mojho pohľadu tu vidím isté medzeri v znalostiach PHP. Do
foreach
u môže ísť aj pole objektov. Podľa mňa pri výskyte
->
, v šablone by mala byť prvá myšlienka taká, že
premenná je objekt a pristupuje sa takto k jej vlastnostiam (toť znalosti OOP
v PHP), a až potom by * možno * mala dostať priestor myšlienka, že to je
nejaká kůl fičura šablonovacieho jazyka.
Vás poplietol ten ArrayAccess, kde je možné pristupovať aj cez hranaté zatvorky aj cez šipku. A presne o tom som hovoril, že keby vam niekto poslal už hotový kód a boli by tam také fíčury, boli by ste ešte menej mudrejší jak z popisu z dokumentácie.
A podobne je to aj s tou metodou getModel()
, malo by byť
jasné čo robí – lazy loading modelu –
keď premenná $this->model
je null
ová tak sa do
nej uloží nový objekt Model
, ak nie je null
ová,
tak sa vráti to čo je už uložené v $this->model
. A toto
nie je vôbec fičura Nette, ale už samotný spôsob programovania. Podobá sa
to na navrhový vzor
singleton.
Edit: vysvetlenie getModel()
Edit2: typo: Module → Model… fuck, ľahko sa to zamieňa :/
Toľko moj pohľad.
Editoval Cifro (17. 7. 2010 19:48)
- Cifro
- Člen | 245
westrem napsal(a):
Cifro napsal:
Aktuálne sa vyrába nová dokumentácia a Quick startChcem sa spytat, nevies nahodou v akom casovom horizonte bude hotova stranka „Jak na moduly?“. Je to jedna z veci, ktore som si chcel najviac precitat a stale neexistuje :(
Neviem. A dokonca, túto stránku som už ani nenašiel v aktuálnej doc. Ale o moduloch niečo isto bude napísané v novej dokumentácii.
Aktuálna implementácia modulov v Nette je prostá. Je to iba adresár
s presentermi. Do samotnej app sa to nijak neregistruje (RobotLoader si nájde
všetko), v šablonách sa len odkazuje na iné moduly
{link :NejakyModul:NejakyPresenter:NejakaAkcia:}
. To, že sa napr.
ti v administrácii v menu zobrazí nová položka s názvom modulu si
musíš naprogramovať už sám.
Editoval Cifro (17. 7. 2010 19:07)
- Ani
- Člen | 226
Tak poslední dobou se nette začínájí učit lidi, kteří neumí základy
php a tam je problém, že hned chtějí hotovou aplikaci, ale
„ztroskotají“ na vytvoření složky… Taky mi přijde že je tu nějaká
představa, jak se to člověk naučí za dvě odpoledne.
Takhle to dopadne i s nějakou pořádnou aplikací, kde si to bude člověk
bez větších znalostí upravovat, ono to přestane fungovat a bude to
špatně.
- LuKo
- Člen | 116
Cifro napsal(a):
To, že sa napr. ti v administrácii v menu zobrazí nová položka s názvom modulu si musíš naprogramovať už sám.
A to je zrovna věc, která mi v úplném ovládnutí Nette chybí. V předchozím příspěvku jsem to nazval registrací modulu. Vůbec nevím, jak do toho kousnout, aby se mi po nahrání modulu na server přibyla příslušná položka v menu. A to nemluvím o možnosti komentářového modulu, který na jednom webu pod fotkami použiji a na jiném ne. Jak vyzjistit právě aktivní (nahrané) moduly? Šlo by do bootstrapu natvrdo doplnit pole se seznamem aktivních modulů, ale to asi nebude ta správná cesta :-) A v tom bych čekal největší přínos hotové APPky – mám hromadu dílků puzzle, ale chybí mi k tomu obrázek, co vlastně mám skládat. Jde to i bez něj, ale je to docela těžké. I pro člověka, který se v Nette vyzná, to může být velká zkratka, když koukne přesně na určité místo a vidí, jak danou věc udělat. Aby se začátečník Nette nepolíbený (natož s chabými znalostmi PHP) učil z APPky, je samozřejmě nesmysl. Přesto si myslím, že takové „Nette design patterns“ by měly smysl.
- Ani
- Člen | 226
Zrovna moduly v nette jsou zatím pojaté dost jednoduše. Vlastně je to
obyčejné složka. https://forum.nette.org/…ura-a-moduly
(tohle si přečti celé)
Nějaká věstavěná registrace, de/akivace, načítání práv atd. zatím
(bude někdy?) není, takže je to na každým jak si to udělá.
- Cifro
- Člen | 245
LuKo napsal(a):
Cifro napsal(a):
To, že sa napr. ti v administrácii v menu zobrazí nová položka s názvom modulu si musíš naprogramovať už sám.A to je zrovna věc, která mi v úplném ovládnutí Nette chybí. …
To nie je ani o Nette. To je už o samotnom programovaní modulárnej aplikácie. Kolega o tom píše dimplovku ale pre C#. Nette ti v tom len trochu pomáha.
Inšpiráciu môžeš hľadať napr.
- https://forum.nette.org/…ura-a-moduly?…
- v staršej verzii Nelly (môžeš žiadať od Vrtak-CZ, len neviem či vyhovie)
- v Drupale
- vo WordPresse
Edit: Ani bol rýchlejší :)))
Editoval Cifro (17. 7. 2010 20:05)
- odin
- Člen | 50
Blizzy napsal(a):
Záleží na tom, co je proměnná, jestli je$promenna
obyčejný objekt a má veřejné vlastnosti, přistupuješ na ně přes šipku (->
), jestli je to pole (nebo objekt implementující rozhraní ArrayAccess), tak k jednotlivým prvkům přistupuješ přes hranaté závorky. Pokud použiješ Dibi, vrátí ti z databáze DibiRow, a to umožňuje i to pohodlnější první řešení (myslím, že DibiRow implementuje i ArrayAccess, a tak můžeš použít i druhý způsob).
ano, to jsou presne ty diry v dokumentaci, datove typy (parametru a
navratovyh hodnot) obcas chybi a dobrat se a pak treba toho, ze nejaka metoda
v prikladu vraci dibiRow a ze jde k dibiRow pristupovat jako
$row->vlastnost nebo taky $row[‚vlastnost‘] je jeste o hodne vetsi
kovbojka.
Krome toho ani API dokumentace neni zdaleka kompletni, napr. viz https://forum.nette.org/…s-fileupload
nebo dokumentace tridy Ftp (ktera asi skoncila na smetisti dejin).
Ale jako je to o dost lepsi nez to bylo pred rokem.
- despiq
- Člen | 320
co vraci dibi za objekt nema s nette co delat a v dibi dokumentaci to napsane je
a nechapu to s tim stezovanim si na dokumentaci, nette neni zas tak obrovska zalezitost aby kdokoliv nemohl dohledat cokoliv ve zdrojovem kodu
lze k situaci pristupovat naprosto realne, neni dokumentace kterou potrebuju tak jdu proste jinam ale cist tady na foru porad dokolecka jak neni udelana poradne dokumentace je otravny, david to dela zadarmo a nedivim se mu ze nechce psat nebo nema cas na psani dokumentace protoze ma proste jiny veci na praci ktery ho bavej vic
co me ale jeste vic stve je ze se to pak dotyka lidi z komunity kteri se tu snazi tuto dokumentaci vytvaret akteri se nette naucili prave ctenim zdrojovyho kodu, je prece naprosto trapny zadat zadarmo vic a vic a rikat ze to furt neni dost, nejspis za tim bude ta neskutecna lenost lidskeho druhu
- futuretux
- Člen | 24
Bacha, ted se to dotyka zase me. Ja se tady nesnazim nikoho kritizovat, nebo znevazovat jeho praci. Ja se tady snazim poukazat na nedostatky.
Jakakoliv prace je na hovno bez zpetny vazby, a poukazat na nedostatky a upozornit na to, jak neco vylepsit je podle me nejlepsi zpetna vazba.
- despiq
- Člen | 320
Je tady nejaky dobrotivy vyvojar, ktery by mohl poskytnou zdrojovy kod nejakeho mensiho projektu, vyrobeneho s pomoci nette? Jedna se nam jen o pochopeni nekolika nuanci a zahltit forum kupou dotazu nam s kolegou neprijde jako inteligentni a plodny napad. Navic vymysleni a sepisovani dotazu by zabralo hodiny, otevreni tri souboru a jejich projiti nakonec je otazkou nepomerne mensiho casu. Tak tedy, najde se nekdo, kdo nam pomuze?
tohle mi zni jako chci neco co tu neni a bylo by fajn kdyby to tu bylo ale neni tak se tu ptam jestli by tu nebyl nekdo kdo tu diru doplni
chapu ze nekritizujes hotovou praci ALE po precteni max 20 temat na foru musis nutne narazit na to ze se step-by-step dokumentace vytvari a jak sem psal cist porad dokolecka ze se musi dodelat tohle tamto a jeste trochu tuhle je proste do oci bijici
ale ty to treba ani vubec nechces, ty chces hotovou aplikaci kterou si zohybas a podle ni se to naucis a o to me to vic mrzi, ze vlastne ani zadnou dokumentaci nechces a ze se pripravujes o ten lepsi zpusob uceni se, proc by se pak delala krok za krokem dokumentace kdyby stacila na porozumemi hotova aplikace?
a ja tu zas melu, mozna proste pouzij skeleton, to je hotova aplikace, nebo ne?
- westrem
- Člen | 398
Ani napsal(a):
Zrovna moduly v nette jsou zatím pojaté dost jednoduše. Vlastně je to obyčejné složka. https://forum.nette.org/…ura-a-moduly (tohle si přečti celé)
Nějaká věstavěná registrace, de/akivace, načítání práv atd. zatím (bude někdy?) není, takže je to na každým jak si to udělá.
Dakujem krasne za link, nieco take som hladal :).
Co sa tyka vzoroveho projektu tak tu padli dobre nazory pre aj proti.
Je pravda, ze zaciatocnici (ti, ktori vedia ciastocne PHP a chcu pouzivat Nette
pretoze poculi ake je uzasne) budu len stazka chapat tu genialitu v objektovom
navrhu, ktoru Nette ma. A tym, ze by studovali hotove aplikacky by asi naozaj
dochadzalo k tomu javu, ze si ich upravia tak aby to splnalo nejak ich zadanie
a viac by neriesili.
Verim vsak, ze sa tu najdu aj ludia, ktori uz maju svoje skusenosti a snazia sa o pisanie cistych apps a dodrzuju best practise kde sa len da. O to by podla mna primarne slo v tychto vzorovych projektoch. Aby poskytli ukazku best practise. Ja osobne mam napriklad problem s tym, ze vo svojom frameworku, od ktoreho mmtalne upustam som mal vela veci zariesenych pekne a elegantne, a o rovnaku cistotu by som sa chcel postarat aj v prepisanom backende pomocou Nette, bohuzial niekedy je tych moznosti co kam napisat tolko, ze neviem co by napr David povazoval za spravne alebo nespravne riesenie.
Je teda otazne, ci zverejnit projekty, kedze to moze aj pozitivne ale aj negativne vplyvy.
- futuretux
- Člen | 24
despiq napsal(a):
ale ty to treba ani vubec nechces, ty chces hotovou aplikaci kterou si zohybas a podle ni se to naucis a o to me to vic mrzi, ze vlastne ani zadnou dokumentaci nechces a ze se pripravujes o ten lepsi zpusob uceni se, proc by se pak delala krok za krokem dokumentace kdyby stacila na porozumemi hotova aplikace?
Tak je to zase tady. Clovek si uz uz odnasi dobry pocit z toho, ze od nekud priletla dobra a uzitecna rada (ty videa jsem opravdu prehlednul – uz mam nastahovano, opravdu dekuji, ja myslel, ze tam je jen navod na to stazeni) a zase se najde nekdo, kdo ten dobry pocit pohotove zkazi.
K tomuhle jen jedno: nejsem zadna posrana lama, co nekomu neco slibila za velky prachy a chce vydelat na necem co neumi. Programuju uz par let, vsechno poctive rucne. Semtam jsem si dopsal tridu, nasel neco na makra, abych nektere bloky kodu nemusel psat rucne furt dokola… ted jsem usoudil, ze by bylo na case pokrocit se znalostma. Prosel jsem dokumentaci, prosel jsem ty serialy a ok, zakladni veci mi to dalo. Nerozumim par vecem, mozna je to moje pitomost, ale je to pro me nepochopitelny. Kdyz se clovek sekne v necem, je dobre se podivat jak to funguje a doufat, ze to zpetne odvodi. Ale pokud je pro nekoho problem to, ze jsem chtel videt fungujici vec, abych si v hlave srovnal nejasnosti, tak se omlouvam – urcite uz zase pristich par let neudelam tu chybu, ze bych nekoho z nejake internetove komunity pozadal o pomoct, pokud ji budu potreboval, znovu se spolehnu na poctivou otrocinu, tim snad nikoho neurazim.
- futuretux
- Člen | 24
westrem napsal(a):
Co sa tyka vzoroveho projektu tak tu padli dobre nazory pre aj proti.
Je pravda, ze zaciatocnici (ti, ktori vedia ciastocne PHP a chcu pouzivat Nette pretoze poculi ake je uzasne) budu len stazka chapat tu genialitu v objektovom navrhu, ktoru Nette ma. A tym, ze by studovali hotove aplikacky by asi naozaj dochadzalo k tomu javu, ze si ich upravia tak aby to splnalo nejak ich zadanie a viac by neriesili.
S tim naprosto souhlasim, jeden muj znamy je slibotechna, ktera neustale nekomu slibuje neco na co nema. Nejdrive vykrade po internetu vsude co jde, pak mi napise, abych to dal do hromady za par korun (coz je ta pozitivnejsi cast, privydelek se vzdycky hodi) a modli se, aby to fungovalo.
Uznavam, ze pro takovehle lidi by uverejneni nekolika projektu bylo dobrym ornym polem. Ovsem jako studijni material pro poctive zajemce by to smysl melo. Opravdu si myslim, ze videt jak to napsal nekdo „lidsky“ je neprekonatelne.
- despiq
- Člen | 320
nechtel sem te odradit, to bych opravdu nerad, za prehnanou reakci se omlouvam, nicmene kdyz tu zustanes a budes procitat forum do historie pak mozna pochpis co sem mel na mysli
ale napadlo me, kdyby byla aplikace, backend i frontend, s prihlasovanim do backendu a treba s datagridem v backendu na spravu stranek ktere by se zobrazovali na frontendu, proste primitivni cms, stacilo by to?
- futuretux
- Člen | 24
despiq napsal(a):
nechtel sem te odradit, to bych opravdu nerad, za prehnanou reakci se omlouvam, nicmene kdyz tu zustanes a budes procitat forum do historie pak mozna pochpis co sem mel na mysli
ale napadlo me, kdyby byla aplikace, backend i frontend, s prihlasovanim do backendu a treba s datagridem v backendu na spravu stranek ktere by se zobrazovali na frontendu, proste primitivni cms, stacilo by to?
Se taky omlouvam, ze jsem trosku „vyjel“, ale jsem haklivej na podobna tvrzeni.
Neco takoveho by asi urcite bodnulo. Ja mam totiz potize s tim, ze nemohu presne rozlisit cim a kde (mysleno ruznymi druhy fci) mam prijimat prikazy, data apod. (Omlouvam se, ale nedovedu to moc dobre popsat, kde mam problem – proste potreboval bych videt na nejakem komplexnejsim prikladu kdy a co zpracovava prichozi zadosti). Jednoduche cms by mi asi ukazalo vicemene vsechny moznosti, takze by to bylo fajn.
- Cifro
- Člen | 245
Dúfam, že sa nikto neurazí, kto na tom robil. I tak je to už mŕtvy projekt…
CMS pre staršiu verziu Nette, veľa toho nezaberie ho upraviť na Nette 1.0-dev