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.