A CakePhp keretrendszerről lesz szó, érvek mellette és ellene, illetve források a tanuláshoz. Érdemes elolvasni, ha még nem foglalkoztál keretrendszerrel.
Mire jó egy keretrendszer?
A keretrendszer egy olyan gyűjtemény, ahol a legtöbbet használni vélt függvények és módszerek össze vannak gyűjtve, amiket a programozó később egyszerűen fel tud használni. Sokszor szabályok és megkötések is társulnak egy-egy keretrendszerhez, amihez alkalmazkodni kell, de mindnek megvan az előnye.
Aki azt mondja, keretrendszer nélkül nem lehet biztonságos, vagy jól átlátható oldalt építeni, annak nem felétlenül adnék igazat.
Sokáig a nulláról építettem fel az oldalaimat, mondván úgyis mind feladatspecifikus, és nem lenne értelme wordpresst vagy joomlát használni. Volt egy function.php fájlom ahova gyűjtöttem a hasznos függvényeket, egy init.php az index fájl elejére ahol az alap beállításokat elvégeztem. Az oldal semmilyen felesleges kódot nem tartalmazott, teljes mértékben elvégezte a dolgát, ráadásul én bármikor ránézek átlátom, mert ugyanazokat a kódolási mintákat és felépítést használtam mindegyikben. Azonban ha belegondolunk, ez is egy keretrendszer, csak nem dokumentált, és mivel egyedül dolgozom rajta, nyilván vannak benne hiányosságok. El is voltam ezzel egészen adddíg, amíg egy munka meg nem követelte a CakePhp használatát.
Az ilyen keretrendszerek előnye, hogy van egy egységes dokumentációjuk, és a programozók a keretrendszer által megadott szabályokhoz és elvekhez próbálnak alkalmazkodni és úgy megírni a programjaikat, így más fejlesztő könnyen átláthatja azt, és mi is később egyszerűbben visszazökkenünk a projektbe.
Nem utolsó szempont az sem, hogy a keretrendszerekhez általában írhatók pluginek, melyek egyszerűen beépíthetők másik projektbe. Eddig a function.php-ből kimásolgattam azokat a függvényeket amik kellettek, de ez elég pepecselős munka volt. Most a pluginek ott csücsülnek egy mappában, és csak azokat tölti be az oldal, amire szükség van.
Ott vannak még ezek a “szabályok”… Miért alkalmazkodnánk szabályokhoz, csak megnehezítik a dolgunkat. Nem biztos, sőt! Ilyen szabály például, hogy a tábláinkat angolul többes számban, a benne található idegen kulcsokat pedig angolul egyes számban nevezzük el. Ha ezután lefuttatunk egy gyors programot, az felismeri a táblák közti kapcsolatot, és legenereálja belőle a modellt. Rengeteg időt megspórolhatunk vele, mindenképpen megéri.
A másik előnye a szabályoknak, hogy így kénytelen mindenki egységes módon írni a pluginokat, ergo amit valaki megírt és közzétett, az biztosan használható a te projektedben is.
Pontokba szedve a keretrendszer:
- Egységessé teszi a kód szerkezetét
- Tartalmaznak hasznos, előre megírt komponenseket, pl: session kezelés, beléptetés, form generátor…
- Ha egyszer megtanuljuk, eszméletlenül meggyorsítja a fejlesztést
Hol tudod megtanulni?
Vannak nagyon jó magyar források. Egyik a CakePhp hivatalos oldala: http://book.cakephp.org/hu, amit azután érdemes böngészni, hogy egyszer végig olvastad a WebMánia blog cikkeit.
Ez volt az első keretrendszer amivel foglalkoztam, és nagyjából 10 nap alatt sikerült megtanulni az alapokat, bár hajtott a munka is. Mindenképpen úgy érdemes tanulni, hogy közben van egy oldalad amit el akarsz készíteni benne, mert csak az api és dokumentáció olvasásnak nem sok értelme van.
Pro / kontra
Az egyetlen dolog ami eddig ellene szól, az a sebesség: a CodeIgniter 8-szor, a ZendFramework 2-3-szor olyan gyors mint a CakePhp, azonban én mégis emellett tettem le a voksom. A gyorsas csak nagy rendszereknél számít, ami engem egyelőre nem érint, és a parancsosor ami segítségével egy adatbázisból legenerálja a modellt, controllert és nézeteket, nekem megfizethetetlen. Inkább gondolkodok egy problémán 2 napig, mint hogy favágó módon írjam egész nap a formokat és add, edit, delete, index, view nézeteket.
Aki még nem foglalkozott keretrendszerrel, annak mindenképpen érdemes ezzel kezdeni, mert a ZendFrameworkel ellentétben, itt hamar rá lehet érezni, miért érdemes használni. A Zendet nemsokára elkezdem tanulni, ugyanis azt mondják az a netovább, viszont egyelőre nincs rá időm, és ez is megteszi.
Összegzés
Ne feledjük, érdemes a tökéletességre törekedni, de mindig lássuk, hogy az adott feladathoz mi a szükséges és elégséges követelmény. Nem sokan fogják megfizetni, ha egy oldal komoly keretrendszerben készült, a legtöbb helyen az a lényeg, hogy olcsó legyen, működjön. Biztonságos oldal attól biztonságos, hogy megfelelő háttértudással programoztuk le, aki az életét arra áldozza hogy hibát keressen benne úgyis fog. A FireFox mögött is a legjobb programozók állnak, mégis mindig jönnek a bugok.
Ha azonban van szabadidőnk, egy keretrendszer megtanulása egy újabb szint a programozási pályafutásunk során.

