Repository navigation
RedFox
A Vörös Róka a Phlex ORM rétege. A RedFox entitásait az App/Entiy mappában találod. Egy entitás az alábbiak szerint néz ki a fájlok szintjén.
🗂 App
|-- 🗂 Entity
|-- 🗂 User - A User entitás
|-- 📝 User.php
|-- 📝 UserModel.php
|-- 📝 UserRepository.php
Azaz egy entitásért három fájl, azaz három osztály felel. Ezekben az osztályokban nagyon sok tudás van, de feléd ebből egész keveset mutatnak. Hiszen a te dolgod az, hogy tartalommal töltsd fel őket.
A táblákat mindig kis betűvel nevezd el, ahol a névbe szóközt tennél, oda írj aláhúzásjelet. Így lehet a blog_post táblából BlogPost entitás automatikusan. Erre azért van szükség, mert ahány operációs rendszeren csak létezik MySql, mindegyiken picit másképp kezeli a táblák nevében megjelenő nagybetűket. Így inkább tartózkodjunk tőle!
A mezőneveknél már nem kell ilyen óvatosnak lenni, bátran használd camelCase írásmódban a mezőneveket.
Minden entitásodnak rendelkeznie kell egy "id" mezővel, ami autoinkremens és elsődleges kulcs legyen az adatbázistáblában.
Az Entitás osztály (a fenti példában a User) egy példányát kapod a kezedbe, ha egy felhasználót kezelsz. Bővebben
A Model osztály az, ami leírja, hogy hogyan is néz ki az entitásod, milyen tulajdonságai, kapcsolatai vannak. Bővebben
A Repository osztály felel az entitásaid és az adatbázis közötti kapcsolatért Bővebben
Úgy döntöttünk, hogy kényelmetlen lenne minden egyes entitásodhoz kézzel lérehozni ezt a sok fájlt, ezért készítettünk hozzá egy kis segítséget.
Ezzel a paranccsal hozhatsz létre entitásokat. Meg kell add az entitás nevét. Amennyiben az megegyezik az adatbázis tábla nevével (azaz hasonlít rá: pl: BlogPost entitásnév -> blog_post táblanév) akkor a tábla nevét nem kötelező megadni. Ha az eredeti adatbázisnevet használod (database) és abban található az entitásod táblája, akkor azt is elhagyhatod. Ez a parancs nem csinál mást, mint létrehozza az entitás osztályokat, de semmi más okos dolgot nem művel velük.
Az update az, aki már komoly munkát végez, ugyanis ez az a parancs, aki elmegy az adatbázisod megfelelő táblájához, megnézi, hogy abban milyen mezők vannak és azokat a mezőket beírja a Model osztályodba automatikusan. Ha munka közben hozzáadsz vagy megszüntetsz egy adatbázismezőt, akkor futtasd le az update-et, hogy a Modelljeid kövessék a változásokat.
Majdnem ugyan azt csinálja mint az előző parancs, de válogatás nélkül az összes entitásodat frissíteni fogja.
Végül, miután frissültek az modellek, te is beléjük írtál ezt-azt, nincs más hátra, mint dekorálni az entitásokat. Ez a parancs nem kódot ír, hanem a kódjaid elején levő docblockokat frissíti a Modelled aktuális állapotához, hogy - amennyiben jó IDE-t használsz - az segíthessen neked a programozásban.