umiestnovanie a prepajanie suborov

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

Zdravím. Som úplný začiatočník v Nette a v podstate celkovo v MVC programovani. teda v tomto pripade MVP. Mam totalne hlupu otazku, ale mne mne to dost pomoze. Videl som tu par prikladov, co a ako riesit a nejaku predstavu mam, ale nemam absolutne ziadnu predstavu, kde umiestnovat subory v ramci adresara na server. Dajme tomu, skusim si napisat nejaky model a presenter a budem ich vediet navzajom prepojit. Ale kde ich mam umiestnovat? Niekde v ramci priecinka nette alebo ako ostatne php subory? A potom ako pouzit v nejakom inom subore? Prosim,nemohli by ste mi niekto trosku priblizit tuto problematiku? Viem, ze moja otazka je dost nejasna, ale rad by som vedel, co kde umiestnovat a pod. Za kazdu odpoved samozrejme dakujem.

Azathoth
Člen | 495
+
0
-

Snad ti odpovím.
V Nette je tato adresářová struktura: https://doc.nette.org/…n/presenters#…
Takže ty budeš mít všechny php soubory ve složce app. Správně by měl návštěvník tvých stránek postupně spouštět různé metody tvých presenterů a presentery spouští různé metody modelu, což je vlastně celá logika tvých stránek. Takže doporučuji všechny php soubory, které nepatří přímo do nette, umisťovat do složky model, protože tam patří aplikační logika tvých stránek.
Pokud máš nějaké jiné soubory, které nepatří do aplikační logiky, tak uveď příklad, ať se bavíme konkrétněji.

laci
Člen | 16
+
0
-

Vďaka. To mi aspoň trošku priblížilo predstavu. Avšak určite budem mať problém s volaním daných presenterov atď. A čo sa týka iných súborov, tak to sú hlavne veci vzhľadu, čiže layouty, css a pod.

Azathoth
Člen | 495
+
0
-

Layouty jako .latte soubory bys měl mít ve složce app/templates.
A css by mělo být ve složce www/css, jak jsi zvyklý u běžných webových stránek.

Šaman
Člen | 2666
+
0
-

Ideální je začít na sandboxu, kde již máš adresářovou strukturu vytvořenou. Obecně je ale jedno, kde budou soubory s třídama, pokud budou v adresári /app (což by měly být všechny .php soubory – v OOP jsou všechno rozhraní, třídy, nebo traity).
Konfigurační soubory musí být tam, kde je hledá bootstrap (typicky /app/config) a šablony musí být umístěny relativně k presenterům (ty si je dohledávají). Třidy modelu, nebo komponenty si můžeš ale teoreticky dát kam chceš, RobotLoader si je najde.

laci
Člen | 16
+
0
-

Vďaka. Na svojom serveri ani nemám práva zasahovať mimo zložky www, čiže zatiaľ ani nemám inú možnosť ako robiť na sandboxe. Idem podľa postupov, ako urobiť statický web a od toho sa nejako odraziť.Avšak, ako som už spomínal robím na serveri, nie na localhoste a nejako neviem, akomam tam pracovať so sandboxom. Ako tie stránky spúštať a pod.

Azathoth
Člen | 495
+
0
-

Já také na hostingu nemám práva jinam než do složky www a proto měj všechno ve složce www (nahraj celý sandbox do složky www), takže budeš mít www/app, www/temp, www/www a tak dále. Právě tam je důležité si pohlídat .httaccess, aby ti uživatelé nemohli lézt do www/app a dalších složek, ale pouze do www/www.
Tohle by ti mohlo pomoct: https://doc.nette.org/…ubleshooting

Editoval Azathoth (30. 9. 2014 17:10)

laci
Člen | 16
+
0
-

Vďaka, presne kvôli tomu som pred chvíľou otvoril novú diskusiu. Čiže tam v tých súboroch bootstrap a index nebude potrebné meniť nič?

Azathoth
Člen | 495
+
0
-

Přesně tak, nemusíš tam měnit vůbec nic.

laci
Člen | 16
+
0
-

Ok.Lenže mne sa stále objavuje tá biela stránka. htacces zatiaľ neriešim, to to neovlynňuje nie? ladenka ja nastavena na TRUE. ale aj tak sa mi objavuje tá biela stránka. Načo som mohol zabudnúť?

laci
Člen | 16
+
0
-

Pardon. Teraz mi ukazuje 403 forbidden.

Azathoth
Člen | 495
+
0
-

Pokud jsi neupravil .httaccess na automatické přesměrování do složky www/www, tak své stránky nenajdeš na www.example.com, ale na www.example.com/www

laci
Člen | 16
+
0
-

Ano nato som uz prisiel.Ale aj tu mi ladenka ukazuje chybu.

BadRequestException #404

Cannot load presenter ‚Index:Php‘, class ‚Index_PhpPresenter‘ was not found in ‚/home/laci/www/app/IndexModule/presenters/PhpPresenter.php‘. search►

ako chapem co to tam pise,, len neviem ako to vyriesit.

Azathoth
Člen | 495
+
0
-

To chce víc informací, ukaž routerFactory a relativní url adresu, na které to vyskakuje.

laci
Člen | 16
+
0
-

class RouterFactory
{

/**
* @return IRouter
*/
public function createRouter()
{
$router = new RouteList();
$router[] = new Route(‚<presenter>/<action>[/<id>]‘, ‚Homepage:default‘);
return $router;
 }

}

a robi mi to na example.com/www

Šaman
Člen | 2666
+
0
-

To je nějaké divné. Můžeš dát odkaz, pokud je to veřejný hosting?
Tohle skoro vypadá, že máš adresu, která končí example.com/www/index.php a Nette si myslí, že se jedná o IndexModule a PhpPresenter a defaultní akci. Nedělá ti to nějaký ten .htaccess?

Editoval Šaman (30. 9. 2014 19:20)

Azathoth
Člen | 495
+
0
-

hm, tak to netuším, co s tím je…snad poradí někdo zkušenější než jsem já

laci
Člen | 16
+
0
-

Ja to naozaj nechápem. Ešte pred chvíľou, keď som zadal adresu example.com/www/ tak ma presmerovalo na example.com/www/index, kde mi hádzalo tu chybu.Teraz to už ide a vyhodilo mi tú stránku. Tak ďakujem všetkým za pomoc. Teraz sa idem trošku pohrať s písaním .htacces súborov