Autor | Zpráva | ||
---|---|---|---|
qteck Profil |
#1 · Zasláno: 5. 2. 2015, 12:18:45 · Upravil/a: qteck
Ahoj,
napsal jsem si třídu pro obsluhu facebooku konkrétně pak pro zalogování a pro vytažení základního infa. https://github.com/qteck/evelinkars moje stránka je co se architektury týče navržená tímto způsobem: index.php v hlavičce - include model/pageManager.php pageManager->modelIncluder() a pak v html bloku article pageManager->templateInclude(); pak někdo zadá adresu index.php?page=login tak to includne soubor login.php ze složky model do hlavičky indexu a do těla login.php ze složky template. a ten problém spočívá v tom, že v model/login.php mám třídu obsluhující ten facebook login a chci si vytáhnout nějaké proměnné v template/login.php, ale všechny funkce i proměnné z model/login.php jsou v template/login.php nedostupné. Jak toto mohu vyřešit? udělal jsem si test: index_1 index_1_1 index_1_1_1 simuluje můj problém, šoupl jsem to na github https://github.com/qteck/evelinkars Tahle simulace funguje. takkdo ví, možná nějaký problém s třídou pageManager? Takjsem do: http://evelinka.kerouac.cz/index_1.php natvrdo vložil: <?php include "model/login.php"; include "templates/login.php"; a výsledek je: oko: Ukaž h*vn*. takže takhle to funguje, což ukazuje na problém s pageManagerem. V čem ten problém tví tam ale absolutně netuším. Pravdou je, že jsou tam vlastně čtyři levely pagemanager.php included into index.php v index php volány dva další includy pomocí metod z pageManager model login .php a templates login.php tak jsem tomu přidal jeden level a pořád šlape: http://evelinka.kerouac.cz/index_1_2.php okay, tak co se stalo: jsem to tam narubal na drzáka: http://evelinka.kerouac.cz/index.php?page=login.php do hlavičky $ $pages = new Model\PageManager(); $pages->modelIncluder(); include 'model/login.php'; ? <?php include "templates/login.php"; $pages->templateIncluder(); ?> je to teďka takovej double call, obsah se vloží dvakrát, ale proměnné jenom jednou, proto bych rád zavedl diskusi na téma co je špatně s pageManager? Díky za rady. index.php vypadá takto: https://github.com/qteck/evelinkars/blob/master/index.php a pageManager takto: https://github.com/qteck/evelinkars/blob/master/model/pageManager.php pravděpodobně jde o to, že nejsou dostupné ven z té třídy? |
||
qteck Profil |
#2 · Zasláno: 5. 2. 2015, 13:26:38
/* function modelIncluder() { $dir = __DIR__ . '/../model/'; $this->checkDirectories($dir); }*/ function modelIncluder_1() { include "model/login.php"; include "templates/login.php"; } function templateIncluder() { $dir = __DIR__ . '/../templates/'; $this->checkDirectories($dir); } Když je volám v indexu takto: modelIncluder() templateIncluder() tak nešlapou. když zavolám modelIncluder_1() tak šlapou. Proč? |
||
Keeehi Profil |
#3 · Zasláno: 5. 2. 2015, 18:30:31
To že nešlapou je sice hezké, ale to nám o problému moc neřekne. Takhle chybová hláška z laděnky, ta by byla jiná. A stahovat a pouštět se mi to kvůli tomu nechce.
- když už používáš composer, tak proč nevyužiješ jeho autoloader? |
||
qteck Profil |
#4 · Zasláno: 6. 2. 2015, 12:34:14
Laděnka neříká nic.
ten problém je spíš v tom jak je to zkonstruovaný. Snažím se ten web psát v uvozovkách podle MVC a tak si chci vkládat model na začátek indexu před výstup a ak includovat templaty kde chci načítat proměnné které jsem si v hlavičce v modelu naincludoval předtím. ten problém zdá se tkví v tom, že třída pageManager a ty jednotlivé metody udělá ony proměnné v template nedostupné. ale k tomu založím nové téma protože tady jsem to trochu přehnal. každopádně díky. jak na autoload přes composer pro vlastní třídy jsem předtím neznal. |
||
Časová prodleva: 9 let
|
0