PHP példa a ORM tant
Ebben a bejegyzésben, nézzük egy egyszerű példa segítségével ORM, nevezetesen Tan. Ha valaki nem ismeri, az ORM (Object-relációs leképezés, objektum-relációs leképezés) - egy olyan dolog, amely osztályok átlátható hozzáférést az adatbázishoz. Az igazság az, hogy nem minden osztály, és azok, amelyekhez a leírást a adatmodell. Általában szerettem volna egy pár évvel ezelőtt, hogy megtudjuk, egy ilyen dolog, talán nem hagyja figyelmen kívül a tanulmány php, és általában sok hasznos dolgokat: D. Ha valaki ismeri a tervezési minták, azt lehet mondani, hogy a Tan megfelel Active Record mintát. Ahhoz, hogy a szégyent, én magam nem ismeri őket, így semmi konkrét nem tudom megmondani még.
By the way, már érintettem a témát röviden ORM, de csak a python. Láthatjuk körülbelül sqlalchemy itt.
Tovább fog tekinthető például az írás modul php segítségével ORM Tan, hogy privát üzenetet küldeni a felhasználók között.
Kezdeni, hogy meghatározza az asztalunkra. Úgy döntöttem, hogy csak egy lemez, és az egyes üzenetet tárolni egyetlen bejegyzés az adatbázisban. És így, a tábla mezőinek néz rám, mint ez:
- id - id üzenet;
- uid_from - id küld a felhasználó;
- uid_to - id a címzett
- cím - a cím a hozzászólásokat;
- szöveg - a szöveges üzenet;
- flag_unread - a zászló az új üzenet;
- flag_del_from - aláírja a kimenő üzeneteket a távoli;
- flag_del_to - jele a bejövő távoli üzeneteket;
- dátum - a feladás időpontját a unix timestamp formában;
Ebben a szakaszban a tervezés kötöttem. Most, hogy a technikai oldala a kérdés.
Ezután hozza létre a kapcsolatot az adatbázissal, és néhány paraméter (a „lusta” módja annak, hogy a modell betöltése, az adatok érvényesítését, stb.) Az utolsó sor azt jelzi, hogy hol találja meg a Tan modellek.
Most a projekt gyökér mappában létre modelleket és PrivateMessage.php fájlba. Vegye figyelembe, hogy a fájl nevét és osztályát, amely a benne leírt kell egyeznie. Itt van, hogyan nézem ezt a fájlt:
Itt leírjuk az id mezőt, mert A Tan teremt automatikusan, hacsak nincs másképp megadva elsődleges kulcs (elsődleges kulcs). Szintén a táblázatban nem határozza meg az index, ami nem jó. Jó lenne, hogy azt uid_from mezők és uid_to legkevésbé. De nem, mert a lusta, valahogy egy másik alkalommal ;-).
A következő lépés létre a projekt gyökér test.php fájlt, ami lesz a fő jellemzői a dolgozó személyes üzeneteket és néhány kódot, hogy bizonyítsa a funkciót. Itt vannak a fájl tartalma:
$ Conn-> export-> exportClasses (array ( 'PrivateMessage')) - ez a sor private_messaages asztal, ha van még. Úgy, hogy lehet mozgatni a telepítési forgatókönyvet, de mivel nem rendelkezik ezzel, akkor majd hagyja.
$ Curr_uid - ez a változó kellene venni az ülésen. Mivel meg kell nevezni a munkamenet, nem tudom, miért rendelt érték azt a kódot 1.
get_message ($ id, $ uid) - visszaadja a $ id, $ uid át az összes funkciót a tagság tesztüzenetek az aktuális felhasználó. Ismét polzovatelya azonosítót kell venni az ülésen.
delete_messages ($ ids, $ uid) - $ ids - tömb id'shnikov üzenetet szeretne törölni. Valóban törölni adatbázisrekordot, csak azok, akik flag_del_from flag_del_to és 0.
send_message ($ a, $ title, $ text, $ uid) - $ a - id, amelyet a kedvezményezett $ uid - a feladó, a többiek szerintem egyértelmű.
Ui Ez az első kísérlet arra, hogy tegyünk valamit a Tan.