Nový Quickstart – diskuze

#1 před 5 měsíci

Panda
Nette guru
Registrovaný: 4. 7. 2008
Příspěvky: 573

Nový Quickstart – diskuze

Konečně plním slib… Nette dostalo pod stromeček nový Quickstart! Prozatím se jedná o prvotní verzi, která navíc byla psána pod tlakem blížícího se deadline, takže prosím omluvte případné překlepy, chybky a další nedodělky.

Zatím pod každou kapitolou chybí aplikace ke stažení, umístím ji tam až po stabilizaci kódu. Také doplním sekce „Co si pamatovat“, které byly tak fajn na QS pro 0.9. Také ještě chybí poslední dvě kapitolky, které se budou zabývat routováním a nasazením aplikace do produkčního prostředí.

QS najdete v dokumentaci: http://doc.nette.org/cs/quickstart
Zdrojové soubory jsou k dispozici na Githubu: https://github.com/…/quick-start

Všechny vás nyní žádám o pomoc s tvorbou. Bylo by dobré, kdyby jste si celý QS prošli a zkusili si podle toho aplikaci napsat. Případné překlepy a podobně buď hlaste, nebo rovnou opravujte. Pokud narazíte na některé nesrovnalosti, nebo vám například bude chybět nějaká zmínka a měla by tam podle Vás být, tak taky hlásit. Pokud si myslíte, že by se něco mělo řešit jinak (já osobně jsem přeci jen poslední dobou Nette moc nesledoval a některé věci mám stále tendenci psát ve stylu starších verzí), tak do diskuze.

Předem všem moc děkuji za pomoc!

25. 2. 2012: QS byl dnes aktualizován. Vizte http://forum.nette.org/…tart-diskuze?p=2.

Editoval Panda (25. 2. 17:21)


Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
 – Talmud

 

#2 před 5 měsíci

Darkry
Člen
Registrovaný: 31. 1. 2011
Příspěvky: 98

Re: Nový Quickstart – diskuze

Projdu to a budu opravovat překlepy a i vytvářet současně tu aplikaci na Nette 2.0 Beta verzi, která je teď v Download.

Až to bude odladěný a přepsaný bylo by dobrý začít dělat na překladu do angličtiny, ale na to já si asi netroufnu :-)


Programming in Nette since 1972

 

#3 před 5 měsíci

HosipLan
Nette guru
Registrovaný: 1. 6. 2009
Příspěvky: 2637

Re: Nový Quickstart – diskuze

Máme opravy posílat na github, nebo si je tam „synchronizuješ“ sám?


Neptej se, jestli se můžeš ptát | Blog | Twitter | GitHubCMS Kdyby

Nette Jabber Room – nette@conf.netlab.cz , všichni jste vítáni

Online

 

#4 před 5 měsíci

Panda
Nette guru
Registrovaný: 4. 7. 2008
Příspěvky: 573

Re: Nový Quickstart – diskuze

Ne, na github není nutné posílat, jednou za čas si to sesynchronizuji sám. Dokumentace v repository tam teď bude hlavně kvůli překladu Texy! → TeX → PDF.

Což mi připomíná, že bych mohl do úvodního postu hodit odkaz na zdrojáky…


Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
 – Talmud

 

#5 před 5 měsíci

Schmutzka
Nette guru
Registrovaný: 13. 8. 2010
Příspěvky: 328

Re: Nový Quickstart – diskuze

Pár myšlenek, jak to čtenáři usnadnit, tedy nezmiňovat historické verze, které se mohl kdysi taktéž naučit.

http://doc.nette.org/…rt/presenter

  • používal bych jednotný (kratší, novější, hežčejší) zápis: n:foreach
  • stejně tak na odkazy to samé, tedy místo href="{link Task: $list->id} bych použil: n:href="Task id => $list->id (teď nevím, jesli je to ‚id =>‘ potřeba)

Samo to záleží na tobě, co se ti líbí/víc vyhovuje :)

 

#6 před 5 měsíci

hrach
Nette guru
Registrovaný: 11. 3. 2007
Příspěvky: 519

Re: Nový Quickstart – diskuze

Nejsem zastáncem n:maker ve smyslu používat tam, kde jde. Používat, tam, kde to něco zpřehlední. Což se u foreache nejedná určitě, n:href imo taky ne, protože to editory nezvýrazní. (smarty je naopak často podporováno).

 

#7 před 5 měsíci

Darkry
Člen
Registrovaný: 31. 1. 2011
Příspěvky: 98

Re: Nový Quickstart – diskuze

Stáhnul jsem verzi nette 2.0 beta ze stránek a v sandboxu v app/models je pouze soubor Authenticator.php, takže by to asi chtělo trochu přepsat část o modelech.

A teď jsem si všimnul, že config.neon je přesunut do app/config/config.neon

Editoval Darkry (23. 12. 2011 14:58)


Programming in Nette since 1972

 

#8 před 5 měsíci

RiskyNet
Člen
Registrovaný: 19. 9. 2011
Příspěvky: 20

Re: Nový Quickstart – diskuze

Trochu na rychlo, ale zkusil jsem vytvořit Úkolníček. Při tom jsem narazil na drobnosti – předpokládám že se často jedná o rozdíly vývojových verzí ale přeci:

Začínáme > Složka app
 – v sandboxu chybí soubor Model.php v adresáři models
 – config.neon je v adresáři config

Vytvoření databáze a modelu > Nastavení připojení k databázi
 – použita jiná struktura config.neon než je v sandboxu

Vytvoření presenteru > Šablona (1)
 – píše se „V šabloně default.latte máme nyní k dispozici proměnnou $list“ ale v sekci „Spojení s modelem“ je $this->template->tasks

Tady se možná jedná o mou neznalost/chybu, ale jel jsem podle postupu a začátečníka může zmást. V šabloně:

  • $task->created vyvolává error: htmlspecialchars() expects parameter 1 to be string, object given
  • $task->created|date:‚j. n. Y.‘ už je ok

Vytvoření presenteru > Šablona (2)
překlep „Ve složce templates vytvoříme podložku Task“

Po dokončení „Navigace“ error:
Nette\MemberAccessException > Cannot write to an undeclared property TaskPresenter::$taskList

a tady jsem se zasekl a už není čas takže pokračovat budu zítra :)

Ještě drobnost při vytváření TaskPresenter se popisuje:
$this->template->tasks = $this->taskList->related(‚task‘)->order(‚created‘);

později v laděnce je ale vidět, že řadíš dle id, to možná může být taky matoucí když bych hledal kde podle id řadím.

edit: btw klidně i opravím co vím ale ted už musím fakt letět :)

Editoval RiskyNet (23. 12. 2011 15:06)

 

#9 před 5 měsíci

Panda
Nette guru
Registrovaný: 4. 7. 2008
Příspěvky: 573

Re: Nový Quickstart – diskuze

Díky, sandbox byl v posledních dnech opraven a já na to nestačil zareagovat. Během dneška opravím.


Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
 – Talmud

 

#10 před 5 měsíci

HosipLan
Nette guru
Registrovaný: 1. 6. 2009
Příspěvky: 2637

Re: Nový Quickstart – diskuze

Taky jsem malinko přispěl tuhle a táhle opravičkou :P

Zkuste místo vypisování co je špatně, to jít rovnou opravit. Když to opravíte a bude to pořád špatně, tak vám to milerád smažu, takže se není čeho bát :) :P

Editoval HosipLan (23. 12. 2011 15:57)


Neptej se, jestli se můžeš ptát | Blog | Twitter | GitHubCMS Kdyby

Nette Jabber Room – nette@conf.netlab.cz , všichni jste vítáni

Online

 

#11 před 5 měsíci

Panda
Nette guru
Registrovaný: 4. 7. 2008
Příspěvky: 573

Re: Nový Quickstart – diskuze

RiskyNet napsal(a):

Ještě drobnost při vytváření TaskPresenter se popisuje:
$this->template->tasks = $this->taskList->related(‚task‘)->order(‚created‘);

později v laděnce je ale vidět, že řadíš dle id, to možná může být taky matoucí když bych hledal kde podle id řadím.

Screeny prosím berte trochu s rezervou, aplikaci jsem postupně psal a zpětně jsem dělal některé změny, které jsem pak nepřescreenovával. Toto je jedna z nich.


Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
 – Talmud

 

#12 před 5 měsíci

Panda
Nette guru
Registrovaný: 4. 7. 2008
Příspěvky: 573

Re: Nový Quickstart – diskuze

RiskyNet napsal(a):

Po dokončení „Navigace“ error:
Nette\MemberAccessException > Cannot write to an undeclared property TaskPresenter::$taskList

Do jakého souboru jsi psal uvedenou actionDefault? Do QS jsem doplnil, že se změna týká TaskPresenteru…

Mimochodem, tutoriál by nyní měl adresářovou strukturou sedět i na aktuální sandbox. Snad jsem na nic nezapomněl…


Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
 – Talmud

 

#13 před 5 měsíci

Schmutzka
Nette guru
Registrovaný: 13. 8. 2010
Příspěvky: 328

Re: Nový Quickstart – diskuze

hrach napsal(a):

Nejsem zastáncem n:maker ve smyslu používat tam, kde jde. Používat, tam, kde to něco zpřehlední. Což se u foreache nejedná určitě, n:href imo taky ne, protože to editory nezvýrazní. (smarty je naopak často podporováno).

Myslím, že způsob inner, o kterém jsem dříve nevěděl, tuto nepřehlednost řeší.
A zvýrazňování jsem bral jako samozřejmost, protože to tak mám. Je otázkou, jestli je lepší nepoužívat nic, co můj editor nezvýrazňuje, nebo si to raději dopsat. :)

 

#14 před 5 měsíci

peane
Člen
Registrovaný: 21. 12. 2010
Příspěvky: 13

Re: Nový Quickstart – diskuze

Ježiš to je super. Díky moc za nový quickstart.


1200 mics

 

#15 před 5 měsíci

Semik
Člen
Registrovaný: 22. 11. 2009
Příspěvky: 49

Re: Nový Quickstart – diskuze

V šabloně Task\notfound.latte ve {var $title 'Nenalezeno'} chybí rovnítko.

 

#16 před 5 měsíci

Panda
Nette guru
Registrovaný: 4. 7. 2008
Příspěvky: 573

Re: Nový Quickstart – diskuze

Díky! Opravil jsem to i na githubu.


Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
 – Talmud

 

#17 před 5 měsíci

spidy
Člen
Registrovaný: 5. 3. 2011
Příspěvky: 57

Re: Nový Quickstart – diskuze

Nemělo by se místo $this->setView('notFound'); používat spíš něco jako throw new Nette\Application\BadRequestException;?

 

#18 před 5 měsíci

bojovyletoun
Nette guru
Registrovaný: 6. 10. 2010
Příspěvky: 672

Re: Nový Quickstart – diskuze

Taky by to šlo. Tady to chápu jako , a) méně důraznou informaci o tom, že stránka (nebo spíš to nazvat „záznam“) neexistuje, b) třeba (generická) hláška z errorpresenteru by se tady nehodila, tak ji nahradím vlastní.

Jinak návod je pěkný, akorát jediné co mě napadlo, je v části o komponentách upozornit na nutnost psát malé mpísmeno v v šabloně.

Ještě jeden poznatek: stránka se mi načítala přes sekundu, frusrovalo mě to, tak jsem se pomocí wincachegrind( který se hodí spíš pro rychlou konkrétní analýzu než kcachegrind) doklikal k PDO::connect, a vzpomněl si na starý problém, že host:localhost zpomaluje. Tak jsem to nahradil 127.0.0.1 a jede to OK. Pravá příčina ale byla v chybějícím řádku 127.0.0.1 localhostc:\Windows\System32\drivers\etc


Nette 2dev from github/Netbeans 7.0.1/(Tortoise)git/
Apache 2.4/fcgid/PHP 5.3.9+xdebug+wincache

 

#19 před 5 měsíci

HosipLan
Nette guru
Registrovaný: 1. 6. 2009
Příspěvky: 2637

Re: Nový Quickstart – diskuze

spidy napsal(a):

Nemělo by se místo $this->setView('notFound'); používat spíš něco jako throw new Nette\Application\BadRequestException;?

V tomhle případě výjimka není použita záměrně, protože nechceme uživatele posílat tam, kde slunce nesvítí, ale chceme mu přesně říct co je špatně. V podstatě je to takový vstřícnější ErrorPresenter.


Neptej se, jestli se můžeš ptát | Blog | Twitter | GitHubCMS Kdyby

Nette Jabber Room – nette@conf.netlab.cz , všichni jste vítáni

Online

 

#20 před 5 měsíci

Radimorous
Člen
Registrovaný: 26. 12. 2011
Příspěvky: 30

Re: Nový Quickstart – diskuze

Pro začátečníky by bylo dobré doplnit do textu, že při editaci confing.neon je třeba dát pozor na mezery a tabulátory. Když tam budou připisovat registraci služby model, tak se u toho dá celkem na dlouho seknout.

 

#21 před 5 měsíci

Radimorous
Člen
Registrovaný: 26. 12. 2011
Příspěvky: 30

Re: Nový Quickstart – diskuze

Můžu se zeptat, na kdy je přibližně plánováno dokončení Quick Startu? My úplní začátečníci v Nette jistě velmi oceníme jakýkoliv posun, protože aktuálnost tutoriálů je asi největší slabina celého frameworku, když vždycky pár řádků kódu řešíme půl dne…

 

#22 před 5 měsíci

Panda
Nette guru
Registrovaný: 4. 7. 2008
Příspěvky: 573

Re: Nový Quickstart – diskuze

Dokončení? V jakém smyslu? Chybí Ti poslední dvě kapitoly? Ty budu dopisovat někdy během následujících 14 dnů. Jádro tutoriálu by ale nyní mělo být hotové a mělo by se podle něj jít v pohodě řídit. Pokud ne, tak prosím sepiš konkrétní místa, která Ti přijdou nedokončená a nejasná a něco s tím uděláme.

Co se aktuálnosti týče, tak to bylo také myšleno na QS? Ten by měl reflektovat poslední nightly buildy, pro jistotu jsem dneska upravil poznámku o revizi, byly tam 2 commity navíc, které QS ale nijak neovlivňovaly.

Předem díky za jakoukoliv zpětnou vazbu!


Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
 – Talmud

 

#23 před 5 měsíci

Radimorous
Člen
Registrovaný: 26. 12. 2011
Příspěvky: 30

Re: Nový Quickstart – diskuze

Panda napsal(a):

Dokončení? V jakém smyslu? Chybí Ti poslední dvě kapitoly? Ty budu dopisovat někdy během následujících 14 dnů. Jádro tutoriálu by ale nyní mělo být hotové a mělo by se podle něj jít v pohodě řídit. Pokud ne, tak prosím sepiš konkrétní místa, která Ti přijdou nedokončená a nejasná a něco s tím uděláme.

Co se aktuálnosti týče, tak to bylo také myšleno na QS? Ten by měl reflektovat poslední nightly buildy, pro jistotu jsem dneska upravil poznámku o revizi, byly tam 2 commity navíc, které QS ale nijak neovlivňovaly.

Předem díky za jakoukoliv zpětnou vazbu!

Zrovna jsem začal s Nette náhodou 25.12, takže jsem byl nejspíš mezi prvními začátečníky, kteří se učili podle nového, díky za to :) Za každou kapitolu by se hodilo dát aktuální zdrojáky, ale není to must, spíše jen nice to have… A těším se na dokončení kapitoly s routováním, zrovna jsem se totiž u toho celkem sekl, když si chci napsat blog bez dibi, tak nevím, jak zprovoznit routování (ale to sem nepatří, dotaz jsem dal v sekci začátečníci). Ještě jednou díky za tvorbu tutoriálů, protože kvalitní tutorialy přispějí k šíření Nette. Pár známých bohužel nemělo nervy na bordel v tutorialech a šlo na Zend, tak snad se to s novým Quick startem obrátí.

 

#24 před 5 měsíci

Ot@s
Nette guru
Registrovaný: 3. 11. 2010
Příspěvky: 253

Re: Nový Quickstart – diskuze

Radimorous napsal(a):
… Pár známých bohužel nemělo nervy na bordel v tutorialech a šlo na Zend …

Právě pro „slabinu“ v dokumentaci vznikla kolem Nette taková silná a kvalitní komunita. Kdo „vydržel“, tak tomu většinou propadl a má hlubší znalosti díky nutnosti jít více do hloubky, poprat se s tím sám – prostě vydržet a nevzdát to.

 

#25 před 5 měsíci

Panda
Nette guru
Registrovaný: 4. 7. 2008
Příspěvky: 573

Re: Nový Quickstart – diskuze

Radimorous napsal(a):

Za každou kapitolu by se hodilo dát aktuální zdrojáky, ale není to must, spíše jen nice to have…

Určitě budou, na začátek jsem je ale záměrně nedával, protože aktualizovat při každé změně několik archivů by bylo nad síly všech zúčastněných a mít tam neaktuální zdrojáky se mi také nechce.

Momentálně to chce hlavně vyřešit, co se třídou Model. Rád bych celou modelovou vrstvu trochu refactoroval, aby se v komponentách a presenterech neoperovalo přímo s objektem typu Nette\Database\Table\Selection, ale nevím přesně, jak na to.

Řešení zmíněné v tématu o routách (http://forum.nette.org/…uty-bez-dibi#…) se mi nelíbí trošku v tom, že Nette\Database\Table\Selection si udržuje sestavený dotaz i po jeho vykonání, takže zděděná třída, která nadefinuje metody get*, pak musí být vytvořena jen za účelem volání té jedné jediné metody. Pokud nad již vytvořeným objektem zavolám nějaký další get*, tak se dotaz připojí k předchozímu a v lepším případě se vrátí špatné výsledky, v horším SQL error.

Přejmenování takových metod na where*, aby to „padlo do věty“, jak navrhoval HosipLan na dnes na nette@conf.netlab.cz, podle mě úplně nevystihuje podstatu get funkce.

Co myslíte? Jak ideálně trochu poupravit model, abychom se vyhnuli přímému sestavování dotazu pomocí Nette\Database\Table\Selection přímo v presenterech a komponentách, případně jej alespoň omezili?


Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
 – Talmud

 

#26 před 5 měsíci

David Grudl
Administrator
Registrovaný: 8. 2. 2005
Příspěvky: 5835

Re: Nový Quickstart – diskuze

Především: díky moc za hromadu odvedené práce na Quick startu! Takový čin zůstane nezapomenut a v budoucnu za něj sklidíš ještě spoustu neoprávněné kritiky :-))

K třídě Model: její existence je poněkud nešťastná, protože málokdo si umí pod slovem model představit cokoliv konkrétního, takže ani netuší, k čemu takové třída slouží. Dříve v sandboxu sloužila jako vstupní a inicializační bod modelu, což je věc, kterou plně nahradilo DI. Bylo by tedy vhodné DI naplno využít i v QS.

Samozřejmě je otázka, jak takové DI lidem podat. Sám s tím ze školení zatím moc zkušeností nemám, ale snažím se k tomu přistupovat stejně jak třeba k MVC, tj. žádné MVC nevysvětlovat, neplést tím zbytečně lidem hlavu, a jít přímo k věci. Nechci, aby lidé používali určité postupy proto, že to někdo říkal na školení, nebo proto, že „tak je to přece správné“, ale aby věděli, že to má konkrétní smysl. Na školeních k DI „přijdu“ až po sérii nešikovným pokusů, kdy se potřebujeme v autorizátoru dostat k databázi.

S tím trošku souvisí i používání Table\Selection v presenteru a komponentách. Spousta lidí tady na fóru bude hlasitě namítat proti volání SQL dotazů přímo v kódu presenteru, ale jen málokdo z nich to bude schopen i obhájit (třeba před Jakubem Vránou). Chytře navržený kód totiž používá odpovídající míru abstrakce. U triviálních aplikací může být skutečně pragmatické SQL v presenteru použít.

Framework se ale spíš využívá pro netriviální aplikace, kde se už nějaká další vrstva vyloženě hodí. Univerzální vrstvou mezi databází a vlastním kódem je právě Table\Selection. V případě jednodušších aplikací se dá velmi výhodně používat v presenteru a šablonách. V případě složitějších aplikací v modelu.

Nicméně, samotný QS a značná část aplikací tvořených v Nette bude patřit právě do ranku těch „jednodušších“, proto bych se jeho použití nebál, naopak předvedl všechny výhody. Teprve nakonec mohou být naznačeny metody vhodné pro vyšší level aplikací.

 

#27 před 5 měsíci

mrataja
Člen
Registrovaný: 21. 7. 2009
Příspěvky: 31

Re: Nový Quickstart – diskuze

Ahoj, upřímné díky za QS. Rád bych se zeptal:
1.) Pokud budu chtít využít více modelů než jen použitý Model.php, budu je rovněž definovat jako službu v config.neon?

2.) V BasePresenteru jsme vytvořili metodu beforeRender, která tahá data pro navigaci. Pokud ji vytvořím ve startup metodě, chová se to stejně. Nezáleží tedy na tom, jestli je tahám ve startupu nebo v beforeRender?

3.) Při změně stavu tasku (metoda handleMarkDone) bych rád dostal informaci do snipettu, že se to povedlo/nepovedlo. Přidání $this->flashMessage(‚msg‘) nepomohlo. Jak na to?
Musí být $this->presenter->flashMessage(‚Změna stavu byla úspěšná.‘);

4.) Možná by se někomu hodilo jako mě, zvýraznit aktivní menu

<ul n:inner-foreach="$taskLists as $list">
        <li {ifCurrent Task: $list->id}class="current"{/ifCurrent}>
                <a href="{link Task: $list->id}">{$list->title}</a>
        </li>
</ul>

v css doplnit

div.task-lists .current a{
  color: #333;
  border-bottom-color: #555;
}

Editoval mrataja (27. 12. 2011 20:44)

 

#28 před 5 měsíci

Schmutzka
Nette guru
Registrovaný: 13. 8. 2010
Příspěvky: 328

Re: Nový Quickstart – diskuze

mrataja napsal(a):

<ul n:inner-foreach="$taskLists as $list">
      <li {ifCurrent Task: $list->id}class="current"{/ifCurrent}>
              <a href="{link Task: $list->id}">{$list->title}</a>
      </li>
</ul>

Lépe:

<ul n:inner-foreach="$taskLists as $list">
        <li n:class="item, $presenter->linkCurrent ? current"> <!-- umožňuje další třídy -->
                <a href="{link Task: $list->id}">{$list->title}</a>
        </li>
</ul>

 

#29 před 5 měsíci

Patrik Votoček
Nette Evangelist
Registrovaný: 8. 3. 2008
Příspěvky: 2122

Re: Nový Quickstart – diskuze

Schmutzka napsal(a):

Lépe:

<ul n:inner-foreach="$taskLists as $list">
      <li n:class="item, $presenter->linkCurrent ? current"> <!-- umožňuje další třídy -->
              <a href="{link Task: $list->id}">{$list->title}</a>
      </li>
</ul>

Špatně!

$presenter->linkCurrent totiž ověřuje aktuálnost naposledy generovaného linku. A jelikož se zde link generuje až na dalším řádku bude se tedy ověřovat link z předchozí iterace nikoli stávající.

Správně je to tedy:

<ul n:inner-foreach="$taskLists as $list">
        <li n:class="item, $presenter->isLinkCurrent('Task:', array($list->id)) ? current">
                <a href="{link Task: $list->id}">{$list->title}</a>
        </li>
</ul>

Sorry my bad english.
Vrtak-CZ | Nella Project | Osobní Blog | Twitter | LinkedIn | GitHub
„Nastala chyba která neměla nastat“ aneb „Když se chce všechno jde.“

 

#30 před 5 měsíci

bojovyletoun
Nette guru
Registrovaný: 6. 10. 2010
Příspěvky: 672

Re: Nový Quickstart – diskuze

Do handlemarkdone vložit $this->presenter->flashMessage("Změna stavu byla úspěšná."); pro potvrzení odškrtnutí.
Dál bych refactrotoval
$this->model->getTasks()->where(array('id' => $taskId))->update(array('done' => 1));
na $task->update(array('done' => 1))

Myslím, že by bylo i vhodné dát do tutoriálu jakési cvičení.

Mohla by to být další kapitola a v ní tyto drobé úkoly – jak ostatně vyplynulo odsud

  • zvýraznění akutálního projektu. (n:class=islinkcurr...)
  • zprávička pro potvrzení odškrnutí tasku
  • možnost smazat task
  • možnost smazat task, byl li dokončen.

Někde dál by mohlo být řešení. Případně by toto mohlo být jako další kapitola „drobné úpravy“.

Zkusím to napsat a přidat.

Editoval bojovyletoun (28. 12. 2011 19:02)


Nette 2dev from github/Netbeans 7.0.1/(Tortoise)git/
Apache 2.4/fcgid/PHP 5.3.9+xdebug+wincache

 

#31 před 5 měsíci

Panda
Nette guru
Registrovaný: 4. 7. 2008
Příspěvky: 573

Re: Nový Quickstart – diskuze

bojovyletoun napsal(a):

Zkusím to napsat a přidat.

Je to zajímavý nápad, zatím to ale piš někam bokem. Některé věci, například ty flash zprávičky z komponenty, by měly asi být řešeny přímo v QS. Navíc na některé věci, které se Tobě zdají samozřejmé, začátečník vůbec nepřijde, protože nemá přehled. Cvičení by třeba vyřešil, ale asi by to nebylo moc v duchu Nette. Smyslem QS by mělo být začátečníkovi některé „best practice“ naservírovat rovnou na talíř, aby si na ně zvykl a zbytečně si nekomplikoval život.

Co se dalšího rozšiřování týče, tak mám v hlavně několik myšlenek na další rozšiřující tutoriály. Teď je ale hlavní doladit základní QS, až pak bych se bavil dál.


Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
 – Talmud

 

#32 před 5 měsíci

Schmutzka
Nette guru
Registrovaný: 13. 8. 2010
Příspěvky: 328

Re: Nový Quickstart – diskuze

Patrik Votoček napsal(a):

Pravda, bral jsem to jako položky v menu, přehlédl jsem ta id. Díky za opravu.

 

#33 před 5 měsíci

err
Člen
Registrovaný: 30. 12. 2011
Příspěvky: 26

Re: Nový Quickstart – diskuze

jako uplny zacatecnik s nette podle tutorialu jedu a mam par poznamek neznaleho, seznamujiciho se cloveka:

– u struktury adresaru prosim dopsat pozadovana opravneni pro /temp a /log . jsou sice popsana dale v textu (po nacteni titulni stranky), ale pokud jsou prava nenastavena, server zahlasi nicnerikajici chybu 500 a nebylo intuitivni presto pokracovat v navodu a narazit na poznamku, ktera prava vysvetluje.

– Vytvoreni DB OK

– Model – zminka o vytvoreni noveho souboru Model.php v adresari model a tridu vlozit do nej. U funkci getTask, getTaskList atd. prosim dopiste, ze jsou to funkce teze tridy.

– Setup OK, authentizace take OK

– Presentery – zde jsem zmateny. Sice je nejdrive ukazan a HomepagePresenter, ale nasledujici modifikace mi jasne nejsou:
* spojeni s modelem – „Pro pohodlnější přístup si připravíme v presenteru atribut $model.“
Pokud jsem vlozil dle navodu a upravil funkci renderDefault, server po uprave default.latte hlasi opet chybu 500

pokud jsem pochopil navod, ma to vypadat takhle:

class HomepagePresenter extends BasePresenter
{
        /** @var Model */
        private $model;

        public function startup()
        {
                parent::startup();
                $this->model = $this->getService('model');
        }

        public function renderDefault()
        {
        $this->template->tasks = $this->model->getTasks()
                ->where(array('done' => false))->order('created ASC');
        }
}

No a dal jsem se zatim nedostal. Ted zjistuji jak pustit debug. V logu serveru nic nemam.


Take by nebylo spatne projekt vystavit, cimz by vetsina dotazu odpadla. stacilo by se jen podivat.

Editoval err (30. 12. 2011 16:52)

 

#34 před 5 měsíci

Panda
Nette guru
Registrovaný: 4. 7. 2008
Příspěvky: 573

Re: Nový Quickstart – diskuze

Pro vynucení debug módu si v bootstrap.php uprav řádek s Debugger::enable takto:

Debugger::enable(FALSE);

(FALSE – vývojový režim, TRUE – produkční prostředí, neuvedeno – autodetekce podle IP adresy, současné Nette považuje za vývojové jen localhost, je také možné zadat seznam IP adres jako pole)

Od pohledu v uvedeném kódu žádnou chybu nevidím, takže by výstup z laděnky moc pomohl. Díky!

Doplněno 16:57:

err napsal(a):

Take by nebylo spatne projekt vystavit, cimz by vetsina dotazu odpadla. stacilo by se jen podivat.

On vystavený je, viz první příspěvek tématu. Po odladění chyb bude pod každou kapitolou ke stažení aplikace ve stavu, v jakém by měla být na konci dané kapitoly. Tutoriál by ale měl být srozumitelný i bez toho, aby člověk musel koukat do zdrojáků, proto jsem teď záměrně odkaz na github hodil jen sem.

Editoval Panda (30. 12. 2011 16:58)


Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
 – Talmud

 

#35 před 5 měsíci

err
Člen
Registrovaný: 30. 12. 2011
Příspěvky: 26

Re: Nový Quickstart – diskuze

dal jsem ti screen do mailu

 

#36 před 5 měsíci

22
Nette guru
Registrovaný: 18. 1. 2010
Příspěvky: 1424

Re: Nový Quickstart – diskuze

Panda napsal(a):

(FALSE – vývojový režim, TRUE – produkční prostředí, neuvedeno – autodetekce podle IP adresy, současné Nette považuje za vývojové jen localhost, je také možné zadat seznam IP adres jako pole)

..nevím, jak jinde, ale poslední dev verze pole nežere, akorát string oddělenný čárkami…

 

#37 před 5 měsíci

Jan Tvrdík
Nette guru
Registrovaný: 13. 4. 2008
Příspěvky: 1262

Re: Nový Quickstart – diskuze

Panda wrote:

Pro vynucení debug módu si v bootstrap.php uprav řádek s Debugger::enable takto:

Debugger::enable(FALSE);

Lépe je použít konstantu:

Debugger::enable(Debugger::DEVELOPMENT);

 

#38 před 5 měsíci

err
Člen
Registrovaný: 30. 12. 2011
Příspěvky: 26

Re: Nový Quickstart – diskuze

Oboji je funkcni v tom smyslu, ze se mi ukaze debug bar. Nicmene to stale hazi chybu 500 a ladenka nevyskakuje. Cache ?. V /log/error.log mam :[2011–12–30 20–21–38] Nette\DI\MissingServiceException: Service ‚model‘ not found. in /muj_web_adresar/libs/Nette/DI/Container.php:159 @ http://muj_web/www/ @@ exception-2011–12–30–17–07–12–70048f45eb99cc80b12dc7a58aa280dc.html


V souboru /app/config/config.neon dle navodu mam:
model: Model( @database )
authenticator: Authenticator( @model::getUsers() )


v /app/models jsem vytvoril Model.php s tridou class Model extends Nette\Object a jejimi funkcemi dle navodu


/app/presenters/HomepagePresenter.php viz. vyse


bootstrap.php :
// Enable Nette Debugger for error visualisation & logging
Debugger::$logDirectory = __DIR__ . ‚/../log‘;
Debugger::$strictMode = TRUE;
Debugger::enable(Debugger::DEVELOPMENT);


Checker mi dava vse OK. Pouzivam Apache / mod_php


 

#39 před 5 měsíci

err
Člen
Registrovaný: 30. 12. 2011
Příspěvky: 26

Re: Nový Quickstart – diskuze

Diky rade uzivatele Panda je po smazani cache ladenka funkcni ! Dekuji.

Editoval err (30. 12. 2011 21:05)

 

#40 před 5 měsíci

err
Člen
Registrovaný: 30. 12. 2011
Příspěvky: 26

Re: Nový Quickstart – diskuze

Takze vse otazka cache. Dekuji za rady. Abych pokracoval v pripominkach, hned bych tento stav zminil :-) pro zacatecnika to neni samostatne resitelne. Take bych se primlouval o pridani zakomentovanych radku pro spusteni debugeru do sandboxu. Tohle je myslim zcela zasadni funkce, ktera by mohla mit vyjimku.

Jeste jednou diky za pomoc, jdu prochazet navod dal. Napisu vysledek.

 

#41 před 5 měsíci

Panda
Nette guru
Registrovaný: 4. 7. 2008
Příspěvky: 573

Re: Nový Quickstart – diskuze

err napsal(a):

Takze vse otazka cache. Dekuji za rady. Abych pokracoval v pripominkach, hned bych tento stav zminil :-) pro zacatecnika to neni samostatne resitelne.

Většina začátečníků má server umístěn na localhostu, takže u nich se chyby neprojeví. Přidal jsem ale do QS poznámky, kdyby se s tím někdo setkal.

Jak jsem zmiňoval v mailu, zkusím vymyslet nějaké jednotnější řešení pro detekci prostředí, aby se nemusel Configurator a Debugger nastavovat zvlášť.

Jan Tvrdík: Jinak díky za upozornění na konstanty Debugger::DEVELOPMENT a Debugger::PRODUCTION, když jsem to psal, tak jsem si vůbec neuvědomil, že tam jsou. :-) V QS opraveno.

Editoval Panda (30. 12. 2011 21:56)


Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
 – Talmud

 

#42 před 5 měsíci

err
Člen
Registrovaný: 30. 12. 2011
Příspěvky: 26

Re: Nový Quickstart – diskuze

Dokonceni navodu
TaskPresenter – zalozeni a napln pochopitelne bez potizi, kvituji odkaz na adresar kam patri
po manualnim doplneni Projekt A a Projekt B do databaze, link u Projekt A odkazuje na /www/%EF%BB%BF/www/task/default/1 a Projekt B na /www/task/default/2 (to je asi jiz spravne), nicmene zadny z odkazu neni v teto fazi funkcni . Ani u jednoho, ani u default/3 nevyskakuje ladenka, ale objevi se standardni hlaseni apache Not Found – The requested URL /www//www/task/default/1 was not found on this server.

Vyzkousel jsem vsechny zapisy <ul><li n:foreach …


 

#43 před 5 měsíci

Panda
Nette guru
Registrovaný: 4. 7. 2008
Příspěvky: 573

Re: Nový Quickstart – diskuze

Poprosil bych o celý kód šablony, první odkaz je divný.

Druhý odkaz nefunguje kvůli tomu, že na serveru nemáš povolený mod_rewrite. A pokud máš, tak nejde nastavovat v .htaccess, tzn. v konfiguraci Apache je špatně AllowOverride (měl by být nastaven na All).

Editoval Panda (30. 12. 2011 23:46)


Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
 – Talmud

 

#44 před 5 měsíci

err
Člen
Registrovaný: 30. 12. 2011
Příspěvky: 26

Re: Nový Quickstart – diskuze

Je to tak. Doplnil jsem do virualu a je to OK. Omlouvam se tedy. pro poradek: doplnil jsem do rootu Virtual serveru RewriteEngine On a do Directory AllowOverride All . Struktura tedy vypada :

<VirtualHost *:80>

RewriteEngine On
<Directory />
AllowOverride All
</Directory>
</VirtualHost>

---
Odkaz: /www/%EF%BB%BF Zpusoboval BOM (chyba take na me strane)
 ---

Editoval err (31. 12. 2011 0:00)

 

#45 před 5 měsíci

Panda
Nette guru
Registrovaný: 4. 7. 2008
Příspěvky: 573

Re: Nový Quickstart – diskuze

RewriteEngine On ve virtuálu být nemusí. Je již povolený v .htaccessu ze sandboxu.


Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
 – Talmud

 

#46 před 5 měsíci

err
Člen
Registrovaný: 30. 12. 2011
Příspěvky: 26

Re: Nový Quickstart – diskuze

Pozoruji, ze znehodnocuji tema fora, takze me prispevky pak prosim klidne smazte. Diky!

 

#47 před 5 měsíci

Jan Tvrdík
Nette guru
Registrovaný: 13. 4. 2008
Příspěvky: 1262

Re: Nový Quickstart – diskuze

Následují drobnosti, kterých jsem si všiml při čtení první kapitoly QS.

  • podivná formulace „toto ukládání chybových hlášení…“
  • podivný termín „data sezení“
  • podivný spojení „prostředí Nette“
  • místo document root použít document root nebo DocumentRoot
  • podivná formulace „nastaví mechanismus automatického načítání jednotlivých částí Nette až v případě jejich potřeby“
  • podivné spojení „Nette tříd“
  • podivná formulace „jméno presenteru, který se bude vykonávat“

 

#48 před 5 měsíci

err
Člen
Registrovaný: 30. 12. 2011
Příspěvky: 26

Re: Nový Quickstart – diskuze

Formulare

– Formular pro zadani ukolu je OK
 – Formular pro vytvoreni seznamu ukolu hlasi chybu. Resp BasePresenter, radek 29 . Vyreseno pridanim use Nette\Application\UI\Form; na zacatek souboru BasePresenteru . Mozna by mohlo byt zmineno.

 

#49 před 5 měsíci

err
Člen
Registrovaný: 30. 12. 2011
Příspěvky: 26

Re: Nový Quickstart – diskuze

Komponenty

– rozchazi se kod funkce createComponentTaskList() ; V komponentach je pouze:

return new TaskList($this->taskList->related('task')->order('created'));

a zrejme by melo byt tak, jak je predtim

return new TaskList($this->taskList->related('task')->order('done, created'));

Editoval err (31. 12. 2011 16:11)

 

#50 před 5 měsíci

err
Člen
Registrovaný: 30. 12. 2011
Příspěvky: 26

Re: Nový Quickstart – diskuze

Signaly

  • TaskPresenter / Funkce createComponentTaskList() – chybi druhy argument konstruktoru . Chyba nevyvola ladenku, ale server error 500.

Oprava:

protected function createComponentTaskList()
{
    return new TaskList($this->taskList->related('task')->order('done, created'), $this->model);
}

 
Stránky: 1 2 Next

RSS feed RSS tématu

Zápatí