Nette\Application\AppForm not found

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

Ahoj.
Postupoval jsem při experimentování podle tutoriálu https://doc.nette.org/…thentication a pokoušel se o zobrazení formuláře, definovaného ve vlastní třídě a namespacu. Třídu mi to najde, ale laděnka na mě řve „Class ‚Nette\Application\AppForm‘ not found“ s odkazem na řádek 10:

 9:    class LoginForm extends AppForm
10:    {

Třídu LoginForm autoloader nalezne, ať ji vložím do models, nebo do libs. Nechápu, jak je možné, že pak nenajde třídu ze samotného Nette frameworku. PS: jediná odchylka od tutoriálu, které jsem se dopustil, bylo nerozdělení na 2 moduly.
Rád bych vás tímto požádal o rady. Děkuji.

Editoval Neas (16. 11. 2011 21:52)

JuniorJR
Člen | 181
+
0
-

místo AppForm použij:

use Nette\Application\UI\Form;

class LoginForm extends Form
{
    ...
}

viz. formuláře v presenterech

Editoval JuniorJR (16. 11. 2011 22:01)

Neas
Člen | 43
+
0
-

děkuji, takhle to již funguje. Jen by mě zajímalo, jaký je vlastně rozdíl, mezi třídami Nette\Application\UI\Form, Nette\Application\AppForm a Nette\Forms\Form?

Editoval Neas (16. 11. 2011 22:37)

hAssassin
Člen | 293
+
0
-

jednoduse asi takhle: Nette\Application\AppForm byla prejmenovana a presunuta do/na Nette\Application\UI\Form a Nette\Forms\Form je jeji rodic a je to nevykreslitelna komponenta, kdezto Nette\Application\UI\Form se umi vykreslit.

JuniorJR
Člen | 181
+
0
-

@Neas:

  • Nette\Forms\Form je základní třída pro formuláře
  • Nette\Application\UI\Form je (pokud se nemýlím) náhrada staršího Nette\Application\AppForm a je určena pro použití speciálně v presenterech

EDIT – hAssassin to popsal ještě lépe :)

Editoval JuniorJR (16. 11. 2011 22:52)

22
Člen | 1478
+
0
-

To imho není pravda :-) Nette\Forms\Form se umí přece taky vykreslit. ASi hlavní rozdíl je, že UI\Form implementuje ISignalReceiver, tedy umí přijmat signály

hAssassin
Člen | 293
+
0
-

Vazne? to jsem nevedel. Sorry za mystifikaci :)