Autor Zpráva
hlupacek
Profil *
Ahoj, mám takový hloupí dotaz. Chtěl bych si nadefinovat třeba $pozdrav = "ahoj"; a chci ji mít na celém webu. Jedná se o OOP. Napadlo mne global $pozdrav = "ahoj"; ale já to chci použít v struktuře MVC(P) takže bych potřeboval aby to bylo viditelné pro šechny třídy. Možná jsem problém i blbě vysvětli, ale budu rád za každou radu.
tiso
Profil
hlupacek: takže v podstate konfig? Hodnotu nechceš meniť?
DJ Miky
Profil
Pokud to má být vidět všude, tak konstanta?
mckay
Profil
hlupacek:
Dej si to do config.php (jestli něco takového vedeš). To co vkládáš do každé stránky. Tam se ta proměnná vytvoří a ty ji budeš prakticky moci použít kdekoliv.

global $proměnná použiješ v případě, že s tou proměnnou budeš chtít pracovat uvnitř metody.

"hlupacek" - pěkné jméno, sebedůvěra z něho jen čiší.

Ahoj, mám takový hloupí dotaz
Hloupý - mladý, píše se tvrdé Y.
hlupacek
Profil *
tiso: měnit se nebude jen bude v podmínce, ale to by na to vliv mít nemělo.
mckay: Omlouvám se za "Y", ale četina mi moc nejde. Config.php nevedu, ale vedu bootstrap.php. Takze můžu dát define(pozdrav, ahoj) do bootstrapu a mělo by to frčet?
tiso
Profil
hlupacek: máš na výber medzi konštantou:
define('GREETING', 'ahoj');
echo GREETING;
a dátovým objektom.
hlupacek
Profil *
Tiso, díky už to funguje. A co kdybych si to v té struktuře (MVC) chtěl dát do modelu a mít to přístupné všude?
tiso
Profil
hlupacek: kam si to dáš, tam to budeš mať... Ale prístupné to inde budeš mať až keď si "inicializuješ" model.
hlupacek
Profil *
Potřeboval bych to mít přístupné i pto presentery. Co to prosím znamená "inicializovat" model, omlouvám se za základní neznalosti.
AM_
Profil
v souladu s OOP bys měl konstantu definovat jako člena nějaké třídy, např.
class Config{
  const greeting = 'hello';
}

echo Config::greeting;
hlupacek
Profil *
Mám to v bootstrapu a tam žádné třídy nemám, ještě jsem zapoměl říct podstatnou věc, snažím se to udělat v nette fw.
AM_
Profil
nette fw má slušivý soubor config.ini, kam taková věc patří ;)

hlupacek:
Mám to v bootstrapu a tam žádné třídy nemám,
pak stojí za zvážení, jestli je opravdu umístění v bootstrapu zvolené správně.
hlupacek
Profil *
Proč něco takového cpát do configu? to je zbytečné. Nejlépe to dát do Modelu. Ale moc nevím jak nato. Něco jak jsi psal, ale co když pak budu chtít zkontrolovat zda greeting opravdu = hello? Bude stačit if( Config::greeting === xxx)?
Alphard
Profil
Možná bychom mohli přesněji poradit, kdybyste napsal konkrétní účel a ne jenom demonstrační hello.
Jestli to má být v modelu, může to být třeba v předkovi, kterého všichni dědí, nebo jen v určíté třídě. Kam si to dáte, tam to bude, těžko radit.
Nette má myslím i nějakou třídu Environment, do které lze cokoliv uložit.
Majkl578
Profil
Dotazy ohledně Nette Frameworku doporučuji směřovat na jeho support fórum.
hlupacek
Profil *
Jde oto, že já potřebuju tu proměnnou mít přístupnou i v presenterech. No chci si ošetřit stránku aby nepřihlášený uživatel (nebo uživatel bez práv) nemohl na danou url.
Alphard
Profil
hlupacek:
Takže jde vlastně o řízení přístupu. Kdybyste to napsal hned, bylo by vše jednodušší.
Nette Framework: Přihlašování uživatelů - Zdroják
Nette\Web\User | Nette Framework
hlupacek
Profil *
Alphard: Díky, ale to je přihlášení a odhlášení. Ale já chci aby se nepřihlášený uživatel nedostal třeba na stránku example.cz/admin/add-news.
Alphard
Profil
hlupacek:
Nějak se začít musí, kdybych vás odkázal hned na řízení práv, tak se v tom ztratíte, přihlášení je základ, bez něho to nepůjde.
A hned v prvním návodě je
// je přihlášen?
echo $user->isAuthenticated() ? 'ano' : 'ne';

Přesně to, co chcete.
A hned další díl Nette Framework: Ověřování oprávnění a role - Zdroják.
Buďte trochu samostatný.
hlupacek
Profil *
Proto jsem zde nepsal přímo problom, protože mi každý bude psát, že jsem to mohl najít a pod, ale ja jsem přišel na to, že neumím spoustu základních věcí a proto jsem se snažil to udělat sám. Také bych byl rád kdyby mi někdo doporučil nějakou zajimavou literaturu o OOP na netu.
hlupacek
Profil *
Díky, už to asi funguje jak chci, jsem asi fakt hloupý, že jsem to dělal tak btížně když se to dá řešit vcelku jednoduše, díky všem za rady a ještě bych poprosil tu literaturu o OOP na netu, díky.
Majkl578
Profil
Přesně tento problém se řeší v example CD-collection v DashboardPresenteru.

Mimojiné radvisi, opravdu je problém klást takto specifické dotazy přímo na Nette fórum?
O
Profil *
Literaturu o OOP v PHP? Co třeba php.net? Ale pozor, pro pomalejší jedince může být náročné číst text v angličtině. Pomalejší jedinci ale neprogramují.
O
Profil *
Respektive, trochu to přeformuluji. Pomalejší jedinci nemají prostředky k tomu, aby mohli programovat a proto by se o to neměli pokoušet.
AM_
Profil
hlupacek:
Také bych byl rád kdyby mi někdo doporučil nějakou zajimavou literaturu o OOP na netu.
Jestli ještě neumíš dobře OOP, nesnaž se psát v Nette, je to ztráta času.
K naučení stačí libovolná literatura novějšího data, nalezitelná jak přes google, tak v nejbližším knihkupectví. Doporučit bohužel nic nemohu, OOP jsem se průběžně učil z různých zdrojů.
hlupacek
Profil *
AM_ : Vím, že toho je na netu hodně (už jsem pár věcí četl), ale myslel jsem, že nekdo doporučil literaturu ze které se učil sám.
O: To je možný, ale i pomalejší jedinci v tuhle dobu vi, že existuje google translater:). A není pravda, že pomalejší neprogramují, to říkají jen ti "chytřejší".

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: