Orientace v namespace a úprava cesty

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

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
+
-3
-

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
+
+6
-
  1. to use na Image ma byt spravne use Nette\Utils\Image, ale..
  2. na sablonu to nema zadny vliv, takze..
  3. v sablone musis pouzit FQN – cely nazev. A taky musis pouzit macro var tedy {var $image = Nette\Utils\Image::fromFile(....)}, ale..
  4. tohle v sablone vubec nepouzivej, vsechno by sis mel pripravit v presenteru (a pripadne rovnou v modelu) a do sablony pouze poslat promennou
  5. 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
+
0
-

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
+
0
-

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
+
+6
-

@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
+
+2
-

@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
+
+2
-

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
+
0
-

@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
+
0
-

Nechtěl jsem tvrdit, že je 100% :-) Nic méně lidem, kteří to pro nás připravili a udržují určitě patří mé díky. ;-)

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.

CZechBoY
Člen | 3608
+
0
-

@emptywall V dokumentaci jsou imo jen základy a podrobnější věci už musíš hledat na úrovni api.

ViPEr*CZ*
Člen | 818
+
+2
-

@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
+
0
-

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.