ugrás a tartalomhoz

Symfony Framework - Objektumok példányosítása

whiteman0524 · 2010. Júl. 26. (H), 20.01
Sziasztok !

Nem rég kezdtem el tanulni a Symfony-t. Az a problémám hogy nem tudok objektumokat példányosítani a saját osztályaimból ! Tudom hogy ez elég hülyén hangzik, de ez a helyzet... Például : a frontend\lib\ mappába csinálok egy Akarmi.class.php-t. Bele meg ezt írom :

<?php

class Akarmi {
public function __construct(){
}
}

Ezután mondjuk az executeIndex controll-ban (de akárhol máshol is) ha megpróbálom példányosítani az objektumot (new Akarmi()) elszáll az egész, és fehér képernyőt kapok... Fogalmam sincs hogy mi lehet a baj. Propel objektumokat minden további nélkül létre tudok hozni, tehát azokkal nincsen gond. Az osztályok statikus példányváltozóit, és metódusait is el lehet érni probléma nélkül, csak éppen példányosítani nem tudok osztályokat...

Ha van ötlet, szívesen fogadom. A segítséget előre is kösz.
 
1

frontend_dev.php

fchris82 · 2010. Júl. 26. (H), 23.05
Ne az index.php-val, hanem a frontend_dev.php-val nézd azt az oldalt, ahol fehér képernyőt kaptál, mert akkor meg fog jelenni a hibaüzenet is. Egyébként meg lehet, hogy egy cache ürítés segít a dolgon.
2

Köszi sz ötletet...

whiteman0524 · 2010. Júl. 26. (H), 23.25
... ez eszembe se jutott :) Viszont még mindig nem stimmel valami. Ha a frontend_dev.php-val nézem, akkor minden oké, és megjelenik aminek meg kell. A teszt modulom executeIndex kontrollerében csupán ennyi kód van a korábbiakból kiindulva, és az egyszerűség kedvéért :

$v = new Valami();
$this->uzenet = 'lefutottam';

Szóval először lérejön a Valami objektum, aztán értéket adok az uzenet-nek és kiíratom hogy lássam rendben van-e minden. frontend_dev.php esetében kiírja hogy "lefutottam", szóval oké. De a sima index.php-nál üres fehér lapot kapok, ergo elszállt a példányosításnál. :S Ahogy fent is írtam, az osztályban semmi pláne nincs. Csak egy sima váz, de még az se működik :(
3

./symfony cc

nova76 · 2010. Júl. 27. (K), 06.28
./symfony cc sokat segit.
A fehér képernyőt azért kapod, amiért frontend_dev alatt is kaptad először. frontend_dev alatt kevésbé használod a cache-t, így ott minden elbaltázott utasítás után nem kell törölni a cachet. De cserébe meg másodpercekig tart, míg bejön az oldal. Ha viszont index.php alatt futtatod a hibás kódot, akkor el is cachelted. Ráadásul ha új classt teszel egy libbe, akkor elhagyhatatlan a cache ürítés, mert nem keresgéli végig az összes lib könyvtárat, hogy hátha valahol megtalálja.

Ha ez sem oldja meg, akkor érdemes megnézni az apache logot (tail -f /var/log/apache2/error.log) és a symfony logot is.
4

Megoldotta

whiteman0524 · 2010. Júl. 27. (K), 12.35
A cache ürítés megoldotta a dolgot. Valóban az volt a hiba. Elég figyelmetlen vagyok, mivel a cache ürítésre fchris82 is felhívta a figyelmemet az első hsz-ban, de e fölött ott valamiért elsiklottam :) Mindenesetre a hozzászólásaitokból máris rengeteg tanultam, amire eddig nem figyeltem. Köszönöm szépen mindkettőtöknek :)