Skip to content
This repository was archived by the owner on Jul 8, 2020. It is now read-only.
Laborci Gergely edited this page Aug 10, 2017 · 5 revisions

Redfox - Entity

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.

Adatbázis konvenciók

Táblák nevei

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!

Mezőnevek

A mezőneveknél már nem kell ilyen óvatosnak lenni, bátran használd camelCase írásmódban a mezőneveket.

Az id mező

Minden entitásodnak rendelkeznie kell egy "id" mezővel, ami autoinkremens és elsődleges kulcs legyen az adatbázistáblában.

RedFox alaposztályok

Entity

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

Model

A Model osztály az, ami leírja, hogy hogyan is néz ki az entitásod, milyen tulajdonságai, kapcsolatai vannak. Bővebben

Repository

A Repository osztály felel az entitásaid és az adatbázis közötti kapcsolatért Bővebben

Cli

Ú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.

phlex px:create-entity <name> [<]table>] [<database>]

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.

phlex px:update-entity <name>

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.

phlex px:update-entities

Majdnem ugyan azt csinálja mint az előző parancs, de válogatás nélkül az összes entitásodat frissíteni fogja.

phlex px:decorate-entity <name>

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.

Clone this wiki locally