Orientace v namespace a úprava cesty
- Teapack666
- Člen | 9
Zdravím, jsem začátečník a chtěl bych poradit, asi neumím hledat a tak jsem na svoji odpověď zde na fóru nenarazil…
Stáhl jsem si Nette a použil pro svůj projekt Sandbox. Používám zatím 2 soubory a to presenter HomepagePresenter a šablonu Default.latte.
v šabloně bych chtěl načíst obrázek a pracovat s ním pomocí třídy
Utils\Image. Jenomže nejsem stavu přijít na chuť „namespace“ a
používáním cesty pomocí use.
V presenteru mám následující kód
<?php
namespace app\presenters;
use Nette,
App\Model;
use Utils\Image;
v šabloně potom chci načíst obrázek ze souboru
{$image = Image::fromFile('images/banner01.jpg')}
Není mi vůbec jasné jak a kde mám třídu Image naimportovat. Zkoušel
jsem absolutní cestu k souboru, atd. Pokaždé mi vyhodí hlášku „Class
Image not found“. Nejsem z těch namespace vůbec moudrý, asi chápu na co
se používají, ale potřeboval bych popostrčit a ukázat jakou použít cestu
při „use Utils\Image;“ aby jí potom šablona viděla.
Mnohokrát díky za odpověď :)
- ViPEr*CZ*
- Člen | 818
A proč když už si use dáte do Presenteru si nenačtete přes fromFile obrázek v presenteru a cpete to do šablony??? Do šablony si pošlete snad už jen výsledek. Btw budete muset nejprve nastudovat základy PHP a poté si pročíst dokumentaci. Také při použití nějakého lepšího IDE Vám bude našeptávat, takže si pak všude nemusíte pamatovat celej namespace, ale jen jméno třídy.
- David Matějka
- Moderator | 6445
- to
use
na Image ma byt spravneuse Nette\Utils\Image
, ale.. - na sablonu to nema zadny vliv, takze..
- v sablone musis pouzit FQN – cely nazev. A taky musis pouzit macro
var
tedy{var $image = Nette\Utils\Image::fromFile(....)}
, ale.. - tohle v sablone vubec nepouzivej, vsechno by sis mel pripravit v presenteru (a pripadne rovnou v modelu) a do sablony pouze poslat promennou
- a proc vubec potrebujes nacitat takhle ten obrazek? trida Image slouzi pro
manipulaci s obrazky – zmensovani apod. jestli ho chces normalne zobrazit,
tak pouzij
<img>
tag
- ViPEr*CZ*
- Člen | 818
Bod 4 co popsal David, a který jsem zde popsal o něco dříve je zásadní. Pročíst dokumentaci zmiňuje bod 1 co psal David, kde se dozvíte správnou cestu namespace. Nechápu, který borec mi dal –1, když moje odpověď má defacto stejnou hodnotu jako níže uvedený příspěvek, který ale dostal +1, ale budiž :-D
Editoval ViPEr*CZ* (11. 3. 2016 13:47)
- Teapack666
- Člen | 9
Díky za odpovědi… Ok vracím se zpět k základům :D Bylo mi jasné že bych si měl asi nejdříve nastudovat ten MVP návrhový vzor ;)
Ps. 5. to byl jen příklad ;) chtěl jsem s ním normálně dále pracovat.
- Pavel Kravčík
- Člen | 1196
@ViPEr*CZ*: Taky jsem dal mínus. V podstatě mu nadáváš. A hodně lidí někdy o OOP slyšelo a rádo by to zkusilo. Tak zkusí Nette, protože je to v češtině a má české fórum. Neznají systém „presenter-šablona“ i přesto, že PHP ovládají a quickstart prošli. Není to úplně na pochopení za jedno odpoledne. :)
Něco vyzkouší a nefunguje to → zkusí pár věcí → stále to nefunguje → zeptá se na fóru → dostane vynadáno, že je guma → neprogramuje v Nette. :)
- ViPEr*CZ*
- Člen | 818
@PavelKravčík Nejsem dokonalej. Děkuji za inteligentní
odpověď.
Nechtěl jsem nikomu nadávat. Jen pomoci. Omlouvám se jesti to tak
vyznělo. ;-)
@Teapack666 Mrkni se na dokumentaci…Nette ji má velice pěkně napsanou (za což díky). Namespace je jednoduché… to ti určitě ochotně někdo poradí, kdyby jsi i tak tápal. Doporučuji použít nějaké lepší IDE, které umí napovídat. Taky kdybych měl z hlavy zde vysolit nějakou cestu k nějaké třídě, tak vím prd a budu koukat do dokumentace a nebo si to nechám poradit od IDE.
- Michal Hlávka
- Člen | 190
Nette ji má velice pěkně napsanou? Drtivou většinu věcí co Nette obsahuje musím dohledávat v api.
- Teapack666
- Člen | 9
@ViPEr*CZ* No offense taken… Dokumentaci pročítám, jen mi asi nebyla jasná ta logika toho logického uspořádání model, šablona, prezenter… takže jestli dobře chápu taková ta aplikační logika, jako přihlášení, správa uživatelů.. bla bla bla, to obstarává model.
Pokud tedy chci jednoduchou prezentační stránku kde budu mít JavaScriptový – obrázkový slider (a ostatní JS kraviny) třeba fotogalerii, kontaktní a informační stránky… vystačím si tedy z Presenterem a šablonou… v presenteru připravím všechna data a pak je pouze pošlu šabloně pro vykreslení ?
Snad to chápu dobře :D
Každopádně ještě jednou díky za odpovědi :)
- ViPEr*CZ*
- Člen | 818
@Teapack666 Taková ta základní myšlenka je poměrně jednoduchá. Mám data a chci je od někud vzít a prezentovat uživateli. Data mi získá model. Ten je vezme řekněme z databáze. Tyhle data přes model si vyžádá kontroler. V tomhle případě se jmenuje Presenter. Ten dostane data z modelu. A jako řídící je přepošle do šablony. Šabloně pak můžeš předat už konkrétní proměnnou a v šabloně už ji jen vykreslíš uživateli.
To co jsi popsal pro jednoduchou stránku chápeš správně. Statický data přes Presenter naposíláš šabloně a ta to pak už jen vykreslí.
- Mysteria
- Člen | 797
emptywall napsal(a):
Nette ji má velice pěkně napsanou? Drtivou většinu věcí co Nette obsahuje musím dohledávat v api.
To záleží na tom, co potřebuješ. Pokud jsi nováček a nepotřebuješ nějaké pokročilejší věci, tak je to OK. V momentě, kdy se v tom začneš hrabat víc, tak už je to horší. Ale i tak, třeba článek na psaní DI extensions je taky v pohodě a beru to jako pokročilou věc.