Let the light pierce through the darkness Close all old accounts, turn a new leaf Re-learn that old lesson of friendship Kill nor be killed, settle for lessening Amidst us of this fossilized hatred
connor naplója
programozással kapcsolatos okfejtések…
Perhaps that time has not come yet when our, Gods would listen to the beats in our hearts, peace and happiness spread their glow, perhaps we would have to force Mother Time?.
követendő minta
A Twignél elkezdtek c-re portolni sokszor használt kódot a sebesség növelése érdekében.
http://blog.twig.sensiolabs.org/post/13412456890/twig-1-4-0-rc2-released
ismerkedés a symfony2-vel (2.)
Tehát azt ígértem, hogy a project lezárása után elkezdjük az ismerkedést az symfonyval. Az első kérdés a letöltés után, hogy ok, mit hol találok?
Az app könyvtárban találhatóak a beállítófájlok, cache és a kernel. A kernel az mvc szemléletben felépített modulok (bundle-ök) betöltéséért, futtatásáért felel.
A bin könyvtárban lévő vendors fájl, a gyökérben lévő deps és deps.lock fájlok felelősek a symfony frissítéséért git tárolókból. A vendors a futtatható parancsfájl, a deps meg tárolja a függőségeket. Ide kell felvenni a szükséges paramétereket akkor, ha új 3rd party eszközre lenne szükségünk. Későbbiekben a symfonyban egy új csomagkezelést fognak bevezetni, ami nagyjából hasonlít a linuxokban megismert csomagkezelésre. Függőségeket lehet vele definiálni és a saját kódjainkat csomagokba szervezni. További infó az composerről.
Az src könyvtárban lesznek a kódjaink. A bundle egy komponens a symfonyban, amit mi írtunk. src/cégnév/projectnév/bundleneveBundle a bundle elérési útvonala. Ezzel az útvonallal (ami egyben namespace is) később, bizonyos alap összetevők kiszervezhetőek a vendors mappába is. A bundle Controller mappája tartalmazza a kontrollereket. A controller fájl és osztály suffixe minden esetben Controller. A bundle php fájl ami még szükséges, a többi mappának nem kötelező léteznie.
Vendor mappába frissülnek le a fentebb emlegetett komponensek. Symfony és 3rd party kiterjesztések. Itt is megfigyelhető egyébként a bundle szerű felépítés, a Symfony is egy bundle.
Web DocRoot. De ez lehet akármi.
OK! Most már megtalálom nagyjából a dolgokat a fájlrendszerben, hogyan kezdjek neki?
Symfony enviroment-ek
A enviroment-ek különböztetik meg a különféle futásokat. Így tudunk csinálni egy rendszerre dev, test, prod(uction) enviromenteket. De akár egy symfony kódbázisra ráépíthetünk különféle projecteket, létrehozva ezzel projectneve1_dev, projectneve1_prod, projectneve2_dev … elnevezésű enviromenteket. Az enviromentek nevét a belépő fájl, az alap telepítéseben a web mappa docroot app.php és app_dev.php fájlja tartalmazza. Azt is itt írjuk le, hogy az adott enviroment debug módban fut-e (lásd kernel.debug paraméter később), vagy sem.
app.php 9. sor
$kernel = new AppKernel(‘prod’, false);
app_dev.php 15. sor
$kernel = new AppKernel(‘dev’, true);
A web mappát lemásolva és ezeket a paramétereket átírva új enviromentet hozhatunk létre. Mondjuk egy új weboldalt.
A konzolos parancsok esetében (app/console a belépési pont) az –env kapcsolóban mi kézzel adjuk meg, hogy milyen enviromentet akarunk futtatni. Ha lényeges akkor a további kapcsolókban a debug módot is megadhatjuk (cache újraépítésénél lényeges pl).
Enviromentenként betöltődő bundle-ök.
Következő lépésként még azt is szeretnénk megadni, hogy mely bundle-ök töltődjenek be az egyes futások alkalmával. Ezt beállítani az app/AppKernel.php fájlban van lehetőségünk.
app/AppKernel.php 22. sor
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
illetve
app/AppKernel.php 32-35. sor
public function registerContainerConfiguration(LoaderInterface $loader)
{
$loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
}
Az első kódban mutatott ponton ágaz(hat)nak el a különféle enviromentek. Itt egy egyszerű switch szerkezettel el tudjuk különíteni a különféle enviromenteket. A második kód mutatja, hogy az enviroment nevétől függően, hol keresi a belépő beállító fájlt az app config mappában.
Korábban az app és web mappábat úgy ahogy van másoltam, és úgy hoztam létre új elágazást. De szervesen összetartozó, ugyanakkor mégis külön részegységet alkotó enviromentek esetén ez egy kicsit szorosabb integrációt tud eredményezni és karbantartani is egyszerűbb.
Legközelebb nekilátunk egy minta project és néhány tucat bundle létrehozásának.
Olvasnivaló:
How to Master and Create new Environments
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
