[DEPRECAT] Acest pachet este depreciat in favoarea https://github.com/GranadaORM/Granada https://packagist.org/packages/granadaorm/granada

Descriere

Granada este o implementare Active Record usor de utilizat bazata pe Idiorm / Paris cu incarcare dornica, incarcare lenesa, filtre de interogare, mutatori etc.

O vizualizare rapida:

utilizati modelul Granada \; clasa Utilizator extinde Modelul {postari de functii publice () {return $ this-> has_many (‘Postare’); }} clasa Post extinde Modelul {} // selectati $ utilizator = Utilizator :: unde (‘nume’, ‘Ioan’) -> find_one (); // modifica $ user-> first_name = ‘Doe’; $ utilizator-> salvare (); // selectati relatia $ posts = $ user-> posts () -> find_many (); foreach ($ postari ca $ postare) {echo $ post-> continut; }

Puteti citi documentele Paris Docs pe paris.readthedocs.org, dar asigurati-va ca cititi adaugirile de mai jos.

Instalare

Folosind compozitor:

“require”: {“surt / granada”: “dev-master”}

Configurati-l:

necesita „furnizor / autoload.php”; utilizati Granada \ ORM; ORM :: configure (‘mysql: host = localhost; dbname = my_database’); ORM :: configure (‘nume de utilizator’, ‘utilizator_baza de date’); ORM :: configure (‘parola’, ‘top_secret’);

Ca intotdeauna, il puteti verifica in detaliu in documentatia de la Paris

Adaosuri

Incarcare dornica

Puteti utiliza metoda „cu” pentru a adauga relatii de incarcare dornica la interogare.

$ rezultate = Utilizator :: cu (‘avatar’, ‘postari’) -> find_many ();

va folosi 3 interogari pentru a prelua utilizatorii si relatiile:

SELECT * FROM user SELECT * FROM avatar WHERE user_id IN (….) SELECT * FROM postari WHERE user_id IN (….)

Este posibil sa obtineti rezultatele relatiilor pentru fiecare rezultat, in acest fel

foreach ($ rezultate ca $ rezultat) {echo $ result-> avatar-> img; foreach ($ result-> postari ca $ postare) {echo $ post-> titlu; }}

Incarcare lenesa

Incercarea de a accesa o relatie nedescoperita va apela si o va returna

$ rezultate = Utilizator :: find_many (); foreach ($ rezultate ca $ rezultat) {echo $ result-> avatar-> img; }

Observati ca, daca nu exista niciun rezultat pentru avatar in exemplul de mai sus, acesta va arunca o Notificare: Incercarea de a obtine proprietatea unui non-obiect … Nota: Poate merita efortul de a crea un obiect NULL pentru acest caz de utilizare si altele.

Relatii inlantuite cu argumente pentru incarcarea dornica!

Este posibil sa legati relatiile si sa adaugati argumente la apelurile de relatii

// relatii inlantuite cu notare punct $ rezultate = Utilizator :: cu (‘posts.comments’) -> find_many (); // SAU // relatiile inlantuite folosesc cuvantul rezervat „cu”. (util daca doriti sa transmiteti argumente relatiilor) $ rezultate = Utilizator :: cu (array (‘posts’ => array (‘with’ => array (‘comments’))))) -> find_many (); // SELECT * FROM user // SELECT * FROM post WHERE user_id IN (….) // SELECT * FROM comentarii WHERE post_id IN (….) foreach ($ results as $ result) {foreach ($ posts as $ post) {echo $ post-> titlu; foreach ($ post-> comentarii ca $ comentariu) {echo $ comentariu-> subiect; }}} // puteti utiliza argumente (unul sau mai multe) pentru a apela relatiile modelelor $ rezultate = Utilizator :: cu (array (‘posts’ => array (‘arg1’)))) -> find_many ();

Filtre de interogare personalizate

Este posibil sa creati functii statice pe model pentru a functiona ca filtru in interogari. L-a preconizat cu „filter_”:

utilizati modelul Granada \; class ModelName extinde Model {…. public static function filter_aname ($ query, $ argument1, $ argument2 .

pornocolombianas fire force hentai
coños bonitos porno abuelas españolas
videos incesto online violadas xxx
madura española con joven trio con gordas
pornox tetas amateur
scat porno tios desnudos
españolas masturbandose maduras españolas amateur
descargar peliculas porno xxx gratis en español
jovencitas españolas follando por dinero se follan a su mujer
caras llenas de semen abuelas tragando leche
chicas haciendo el amor lesbianas cagando
mujeres maduras corriendose culos gordos
le pilla masturbandose tetona amateur
nicolette shea zoofila
videos de zofilia gratis supertetas
videos porno online madura se corre
videos xxx violadas videos mamadas
pirno porno tens
brazzers videos completos videos porno violada
pajas en español corrida en el culo

..) {return $ query-> where (‘property’, ‘value’) -> limit (‘X’) ……; } ….}

si apelati-l la un apel static

ModelName :: aname ($ argument1, $ argument2) -> ….

Mai multe nume de adaugiri pentru Granada

  • select_raw
  • group_by_raw
  • order_by_raw
  • raw_join
  • insert: Pentru a crea si a salva mai multe elemente dintr-o matrice
  • pluck: returneaza o singura coloana din rezultat.
  • find_pairs: Returneaza matricea cheii => valoare ca rezultat
  • salvare: accepta un boolean pentru a utiliza „ACTUALIZARE CHEIE DUPLICATA” (doar pentru Mysql)
  • delete_many (accepta clauzele join)

SET suprasarcina

// In functia Model protejat set_title ($ valoare) {$ this-> alias = Str :: slug ($ value); returneaza valoarea $; }
// in afara modelului $ content_instance-> set (‘title’, ‘A title’); // functioneaza si cu mai multe seturi $ properties = array (‘title’ => ‘Un titlu’, ‘content’ => ‘Un anumit continut’); $ content_instance-> set ($ proprietati); // incercati-l cu o atribuire directa $ content_instance-> title = ‘Un titlu’;

Suprasolicitati proprietatea GET si MISSING

// In model // Lucrati la functia protejata definita get_path (valoare $) {return strtolower (valoare $); } // si atribute nedefinite. functie protejata mising_testing () {returneaza „orice”; } … // in afara modelului ecou $ content_instance-> cale; // returneaza valoarea caii minuscule a $ content_instance echo $ content_instance-> testare; // returneaza „orice”, deoarece am definit un missing_ {attribute_name}

Desigur, puteti defini functii cu numele proprietatii daca doriti sa o supraincarcati complet.

Definiti clasa resultSet (tip de colectie) pe Model

Acum este posibil sa se defineasca clasa resultSet returnata pentru un rezultat al instantelor modelului. (daca variabila de configurare return_result_sets este setata la true) Observati ca clasa resultSet definita trebuie sa extinda Granada \ ResultSet si trebuie incarcata

// In Modelul public static $ resultSetClass = ‘TreeResultSet’;
// in afara modelului var_dump (Continut :: find_many ()); // obiect ecouri (TreeResultSet) [10] protejat ‘_results’ => matrice (…) ….

Seturile de rezultate sunt definite de model in rezultat, dupa cum puteti vedea mai sus. La incarcarea dornica, rezultatele sunt consistente. De exemplu, daca avem un model de continut, cu $ resultSetClass = ‘TreeResultSet’ si o relatie has_many definita ca suport media:

Continut :: cu (‘media’) -> find_many ();

va returna un TreeResultSet cu instante de continut, fiecare cu o proprietate $ media care contine Granada \ ResultSet (resultSet implicit daca nu exista daca este definit in model)

Documentatia de baza vine de la Paris:

Caracteristica completa

Parisul este acum considerat a fi complet complet de la versiunea 1.4.0. Desi va continua sa fie mentinut cu remedieri de erori, nu vor mai fi adaugate alte caracteristici noi.

O implementare usoara Active Record pentru PHP5.

Construita deasupra Idiorm.

Testat pe PHP 5.2.0+ – poate functiona pe versiuni anterioare cu PDO si cu driverele corecte ale bazei de date.

Eliberat sub licenta BSD.

Caracteristici

  • Configurare extrem de simpla.
  • Expune intreaga putere a API-ului de interogare fluent al Idiorm.
  • Sprijina asociatiile.
  • Mecanism simplu de incapsulare a interogarilor comune in metodele de filtrare.
  • Construit deasupra PDO.
  • Foloseste declaratii pregatite pe tot parcursul pentru a proteja impotriva atacurilor de injectie SQL.
  • Baza de date agnostica. In prezent accepta SQLite, MySQL, Firebird si PostgreSQL. Poate sa ii sustina pe ceilalti, va rugam sa incercati!
  • Suporta colectii de modele cu metoda de inlantuire pentru a filtra sau aplica actiuni la mai multe rezultate simultan.
  • Sunt acceptate conexiuni multiple