De igen az a lényege az aktívrekordnak, hogy átláthatóbbá teszi a kódot. Ha figyelmesen végigolvasod a Yii turorialokat, és dokumentációt, akkor ott is megtalálhatod azt, hogy a SQL parancs (Yii::app()->db->createCommand) jóval gyorsabb mint az aktívrekord.
Ha olyan site-ot kódolsz, amit akár egyszerre 300-an is böngészhetnek, akkor már óvatosan kell használni az aktívrekordokat, mert megtöpped a szerver
Íjkészítő ügyfelem részére elkészítettem az új honlapját (http://nature-longbow.com) Yii alapon. A rendszer PMS (Page Management System) alapú, azaz az ügyfél által karbantartható oldalak köré építettem fel a logikai struktúrát. Az adminisztrációs felülethez egy adminisztrátor és egy felhasználói fiók tartozik alapból. A felhasználó módosíthatja az oldalon látható tartalmat. Az oldalakhoz fotókat adhat hozzá. A fotók annyi felbontásban, vágottan és vízjelezve jönnek létre, amire csak szükség van. Az adminisztrátor új oldalakat is hozhat létre, azonban a program logika nem képes az újonnan felvett oldalakat lekezelni. Az oldalak szövege, címe, a fotók megjegyzése is többnyelvű. A rendszer nyelveinek száma korlátlan számban bővíthető a jövőben. Saját statisztikai rész naponként és nyelvenként oldalletöltést méri, míg Google Analytics statisztikai rendszert is integráltam. Az oldalakon lévő feliratokhoz a Yii által biztosított i18n technikát alkalmaztam. A SEO barát URL-eket manuálisan állítottam elő (dinamikusan nyelvenként), ami úgyszintén a nyelvi fájlok részét képezte.
Én is szeretném megosztani a Yii-ben készült oldalam: www.art-work.hu
Egy képmegosztó oldal, de nem flickr féle, hanem inkább művészeti irányzat, mint a deviantart. Mivel regisztrálni kell a használathoz, ezt fontosnak tartottam leírni, hogy akit érdekel, az esetleg meg is teheti
A Yii magyar blogon imehesz jóvoltából meg is jelent egy írásom róla: link
Harmadik referencia munkám (http://elite-bogen.com) első fázisa lezárult. Az átadott kódok az eddigi rendszereimhez hasonlóan PMS-ként (Page Management System) funkcionálnak. A rendszer többnyelvű, az oldalak teljes mértékben karbantarthatóak, fotók és videók rendelhetők bármelyik oldalra. A videókat és a fotókat is nyelvenként más-más címkével lehet ellátni.
A fejlesztés második fázisában a felhasználói regisztrációval és bejelentkezéssel kapcsolatos teendőket végzem. A felhasználókezelés és a webshop kulturált megvalósítása is különféle levelezési folyamatokat generál, ráadásul többnyelvű a rendszer, ezért egy külön sablon alapú levélkezelő komponenst készítettem. Az adminisztrációs felületen karbantarthatóak a levelezés sablonjai. A rendszerben felvett nyelveken lehet meghatározni a levél címét, egyszerű (plain) és formázott (html) törzsét. Az adminisztrátor részére egy súgó is megjelenik, amiben láthatja azokat a címkéket, ami az adott levélben ajánlott, hogy szerepeljen. A {{cimkéket}} dupla kapcsos zárójel között adhatóak meg, majd az aktuális kontroller átadja a komponens részére egy tömbben a helyettesítő adatokat (amiket akár több modellből is lekérhet).
A felhasználókezelésnél általános feladatokat oldottam meg: regisztrációt, regisztráció aktiválása e-mailben, bejelentkezés, új jelszó igénylése, és új jelszó aktívása funkciókat… A PMS részhez integráltam a felhasználói funkciókat. A megoldás előnye, hogy a felhasználóval kapcsolatos folyamatokat a honlap stílusának megfelelően készítheti el az adminisztrátor, továbbá az, hogy a PMS kódok karbantarthatósága nem lett redundáns az új felületek miatt. Az űrlapok validálását a felhasználói élmény növelése érdekében AJAX módon is lekezeltem (amit Yii-ben rendkívül egyszerű). A bejelentkezésnél érdekesség, hogy a még nem aktivált felhasználó nem jelentkezhet be a rendszerbe, de erről a rendszer információt ad. A többnyelvű felhasználókezelés összetettségét sugallhatja, hogy nyelvi címkék száma meghaladta a 80 bejegyzést, a sablonlevelekből és PMS oldalakból több mint 10 darabot készítettem.
A felhasználókezelés alapos tesztelését követően fogom elkészíteni a webshop részét a fejlesztésnek. A feladat kivitelezéséről és a felmerülő problémák kivonatáról egy újabb bejegyzést fogok készíteni. Az eddigi tapasztalatom, hogy egy ekkor fejlesztésnél, már a Yii előnyei megmutatkoznak, azaz átlátható, jól szeparált, kevés redundanciával egy helyen karbantarthatóak forráskódok. A fejlesztés nagyságát egy közepes rendszerre lehetne pozicionálni, amiben több mint 30 darab adatbázistábla van. Összesen 7 kontrollerből és 18 modulból oldottam meg a rendszer alapjait. A webshop rendszer újabb kontrollerek és modulok készítését fogja maga után vonni.