Smarty szívás

Mikor sikerült megoldani a fejemet fogtam /o\.

Eddig a PunBB-nek a sablon-megoldását használtam mert egyszerű és ahhoz képest hatékonyan is működött. Egy kis cacheléssel ki lett egészítve.
Aztán ez a cache rész egyre bonyolultabb lett és gondoltam akkor lecserélem Smarty-ra, mindenhol ezt ajánlják.

Manual alapján egész jól belejöttem, meg is tetszett a felépítése, tényleg logikus. Localhoston (IIS7/PHP 5.2.6) error_reporting(E_ALL ^E_NOTICE) mellett működött gond nélkül, már megörültem magamnak.

Aztán felraktam távoli szerverre (Apache 2.x/PHP 5.2.5)... Na ott számomra érthetetlenül jöttek furcsa a hibák :(
Első körben undefined function x, F5 után cannot redeclare x function, F5 után megjelenik az oldal. Ez a három kombináció váltogatta egymást random sorrendben.

Magamba szálltam, átgondoltam mit is lehetne másképpen, annyi eredménye lett h valamivel talán logikusabb lett a kód. Localhoston szintén hibátlanul működött. Nosza fel akkor a szerverre: fatal error: class 'Smarty' not found!
Random számú F5 után hol bejött párszor az oldal, hol ez a hibaüzenet.
Ezért volt nekem az egész furcsa, ha most egyszer szar, akkor legyen az teljesen az és dögöljön meg végzetes hibával.

Mivel teljes hozzáférésem nincsen a szerverhez, ezért SMARTY_DIR konstanssal adtam meg a konfigurációs útvonalakat.
Ezeket leellenőriztem vagy 200x, de olyan hibaüzenet sosem volt, ami arra utalt volna hogy magát a fájlt nem találja. Csak ami benne van :)

Végülis a megoldás nagyon egyszerű volt:
Van a ./smarty/Smarty.class.php fájl, nos ezt 3 óra szenvedés után reménytelenségem közepette fogtam és átneveztem ./smarty/smarty.class.php-re.
Ezekután elkezdett működni. Erre varrjon nekem valaki gombot.

Igazából itt nem értem a keverést a kis- és nagybetűkkel. Az rendben van, hogy windowson nem számít és a linux nagybetűérzékeny, de mindenhol nagy S betűvel kezdődött (fájlnév, php kódban is), tehát elvileg ugyanannak kellett vennie.
Ha meg a linux kisbetűsnek veszi nagy helyett, akkor file not found hibát kellett volna dobnia a php-nek, mert két különböző fájlnak számít a Smarty.class.php és a smarty.class.php .

Hozzászólások

Nem lehet hogy / helyett \ kellene?

Nekem ez inkább valami IIS vagy PHP problémának tűnik inkább.

IIS-en működött jól és a debian Apache szerveren voltak hibák. Ott meg furcsa lenne mondjuk egy home\user\ utvonal. Bár az nem kizárható, hogy valamilyen php.ini-s beállítás b*szott ki velem, az ottaniba nem látok bele. :)
Windowsnál \ elválasztót használok, a PHP konfigurációban is. De / elválasztóval szintén működik.

Tényleg arról nem tudtok, hogy valaki elkezdte-e már a smarty manual-t magyarra fordítani?

Szerintetek lenne ilyenre igény?

Ha igen, akkor esetleg valaki beszállna, hogy gyorsabban menjen? ;-)