phprel: as fast as you can imagine phprel: as fast as you can imagine
Cauta: ma grabesc despre noi contact login clienti
 
prima pagina pentru compania ta pentru programatori pentru tine cum te ajuta phprel servicii web
 
 
Testeaza acum
Este important sa gasiti un produs care vi se potriveste si va ajuta sa realizati mai eficient proiectele dumneavoastra. Noi stim ca phprel este ceea ce cautati, dar vrem sa va convingeti. De aceea aveti la dispozitie conturi de test pe serverele noastre, pentru a experimenta phprel.
testeaza acum
Navigare rapida

Daca va intereseaza o anumita pagina a sectiunii curente, urmati link-ul corespunzator:

Pe scurt: pagini web, formulare, liste, ajax, cache, securitate, url rewrite, multilanguage | Avantaje: implementare rapida, flexibilitate | Tehnologie | Exemple
Ce versiune phprel ti se potriveste?
Versiunea gratuita  - pentru organizatii non-profit sau persoane fizice
Daca nu intreprindeti o activitate comerciala si aveti nevoie de un site pentru a va promova organizatia, pentru a face cunoscuta o idee sau initiativa, pentru a realiza un proiect academic sau pentru a va publica gandurile si realizarile pe web, suntem bucurosi sa va ajutam si va punem la dispozitie o licenta gratuita pentru utilizarea phprel. Tot ce trebuie sa faceti este sa va inregistrati si veti primi pachetul phprel impreuna cu licenta de folosire gratuita.
inregistreaza-te acum
Versiunea start  - pentru o singura aplicatie
Daca veti folosi phprel pentru a crea o singura aplicatie web, sau nu sunteti sigur ca phprel va poate ajuta si vreti sa-i testati eficienta, avem pentru dumneavoastra solutia potrivita: licenta pentru o singura aplicatie web. Bineinteles, ulterior se poate oricand face upgrade la o versiune business, sau cumpara o noua licenta start.
comanda acum
Versiunea business  - pentru afacerea dumneavoastra
Daca firma dumneavoastra se ocupa de realizarea aplicatiilor web, si veti folosi phprel frecvent in diferite proiecte, venim in intampinarea dumneavoastra cu o licenta care va permite realizarea eficienta a acestora: nu exista limita de timp, sau numar maxim de utilizari. Folositi phprel in realizarea fiecarui proiect. O singura licenta, oricate aplicatii web extraordinare.
comanda acum
Versiunea corporate  - pentru companii in care eficienta este un standard
Daca aveti nevoie de o licenta "business", dar si de un training activ oferit programatorilor dumneavoastra pentru a accelera procesul lor de invatare si realizarea primului proiect cu phprel, suntem aici pentru dumneavoastra: o licenta pentru oricate aplicatii web si un workshop realizat impreuna cu proprii dumneavoastra angajati pentru debutul primului lor proiect cu phprel.
comanda acum

phprel - tehnologie

 
 
   
 

Framework-ul phprel foloseste o serie de tehnologii inovative pentru a participa activ la dezvoltarea aplicatiei dumneavoastra web. De fapt, phprel echivaleaza cu inovatie, in orice ramura a dezvoltarii web: fie ca este vorba de interpretarea tag-urilor, de construirea formularelor sau listelor, de AJAX, acces la baza de date, caching, multilanguage sau orice altceva. Am vrut sa va oferim un produs care sa se diferentieze de toate celelalte si in acelasi timp am vrut sa ne asiguram ca produsele oferite de dumneavoastra mai departe, bazate pe produsul nostru, se vor diferentia si ele de cele concurente. Din pasiunea pentru inovatie si pentru depasirea limitelor a rezultat phprel.

 

In primul rand, sa aflam mai multe despre tehnologia din spatele asistentului phprel si sa vedem cu ce anume se ocupa. Asistentul phprel este responsabil pentru analizarea, interpretarea si completarea surselor scrise de dumneavoastra pentru o anumita pagina, de intuirea rezultatelor dorite si corelatiilor dintre diferitele elemente ale paginii precum si de interconectarea concreta a acestor elemente si a secventelor de cod din componenta paginii. In spatele functionarii sale corecte stau algoritmi de predictie, de recunoastere a campurilor semantice, de cautare si inlocuire, de autocompletare precum si algoritmi reflexivi de interpretare si de control.

 

Sa stabilim in linii mari ce inseamna "reflection-oriented programming", paradigma de programare folosita in phprel. Atunci cand pasii unui program nu sunt fixati de dinainte de executie, prin generarea unui "traseu" static in momentul compilarii sau analizarii surselor, si respectivul program foloseste in timpul rularii un proces de introspectie pentru a-si interpreta propria sursa si a determina pasul urmator al executiei, se spune ca programul este construit in paradigma de programare reflexiva. Cu phprel, se scriu diferite surse html si php care alcatuiesc o pagina, se scriu o serie de functii ale caror denumiri variaza conform contextului, se definesc o serie de date ale caror etichete (sau denumiri) variaza conform contextului, si nu exista nimic scris literalmente in cod care sa puna impreuna sau sa coreleze toate aceste piese ale paginii. Logica exista bineinteles in mintea programatorului dar nu se pierde timp legand "fizic" in cod entitatile intre ele sau declarand care anume variabile si care anume metode vor fi folosite si unde, sau care anume surse alcatuiesc pagina si cum trebuie ele imbricate. Nu se leaga fizic in cod nici macar metode folosite pentru a controla insusi procesul de introspectie sau alte procese din phprel care pot fi controlate sau oprite, asa cum am vazut in sectiunea "Cum te ajuta phprel: avantaje", cand am vorbit despre flexibilitatea framework-ului.

 

Pe baza algoritmilor de cautare, interpretare si corelare, framework-ul phprel "intelege" sursele, pune cap la cap piesele din care este alcatuita pagina, apeleaza metodele si preia datele necesare, dirijeaza fluxul de informatie dinspre baza de date inspre template-uri si afiseaza in final un continut unitar. Sa consideram un exemplu simplu in care exista in baza de date un tabel "clienti", cu campurile "id, denumire, utilizator, data_inregistrare, adresa, id_oras, cui", iar intr-o pagina "lista.utilizatori" vrem sa construim o lista cu clienti. Asa cum veti vedea in sectiunea de exemple, si cum ati citit teoretic in sectiunea "Cum te ajuta phprel: pe scurt", este suficient sa scrieti in template in locul necesar un tag de solicitare a unei liste, si lista va fi creata automat. Singura informatie pe care o vom oferi asistentului o reprezinta denumirile coloanelor listei, separate prin virgula: "Denumire client, Utilizator, Data inregistrarii, Adresa, Oras, C.U.I". Pare natural pentru o minte umana sa coreleze lista cu date, dar inainte de phprel asa ceva nu se putea realiza "pur si simplu". Suficient sa denumim coloanele si nu mai trebuie sa precizam nimic altceva, nici tabelul, nici campurile cu care se leaga concret in baza de date respectivele coloane. Framework-ul phprel va analiza sursa html, va descoperi singur tag-ul de solicitare a listei, va corela pagina cu tabelul necesar, "utilizatori", va corela coloana "Denumire client" cu campul "denumire", coloana "Utilizator" cu campul "utilizator", coloana "Data inregistrarii" cu campul "data_inregistrare", si asa mai departe pana la coloana "C.U.I" cu campul "cui". Un algoritm de interpretare a cuvintelor a corelat de exemplu sirul de caractere "Data inregistrarii" cu sirul de caractere "data_inregistrare" stabilind ca probabil din punct de vedere semantic cele doua se refera la acelasi lucru in mintea si in limbajul programatorului. In acelasi mod, phprel coreleaza un tag de includere a unui element de pagina cu sursele html si php corespunzatoare, realizeaza includerea automata de continut, coreleaza un tag simplu de date cu o variabila declarata in php, inlocuieste concret valorea tag-ului, si multe altele.

 

Codul din spatele phprel nu este fix, nu se compune dintr-o serie de pasi determinati static la lansarea in executie a surselor, ci realizeaza o continua analiza a surselor html incluse pana in prezent, a variabilelor si metodelor definite pentru a decide in ce directie va merge in continuare. Dupa ce un tag a fost interpretat si inlocuit sau o noua sursa a fost inclusa in pagina, procesul se reia recursiv si noi elemente vor fi interpretate, corelate si adaugate, intr-un proces care poate avea oricate nivele, pana cand continutul este construit complet si gata de afisare. Similar, la salvarea unui formular prin POST, datele ajung la pagina php catre care au fost trimise, dar sunt preluate si de nucleul phprel, care sesizeaza prezenta unor informatii provenite dintr-un formular. In cazul unui program reflexiv, existenta unor functii, variabile sau date, precum si faptul ca un proces este in curs de desfasurare, determina noi actiuni. Nucleul phprel va analiza datele, pagina curenta, legatura dintre pagina si baza de date, si va intui, folosind algoritmi de predictie, tabelul mysql caruia ii sunt destinate datele si operatiunea care trebuie realizata (de inserare sau actualizare). Pe baza legaturilor stabilite sau intuite, nucleul phprel va construi query-ul necesar, si va introduce automat informatiile in baza de date.

 

Ceea ce pentru dumneavoastra pare evident, pentru un program este imposibil de realizat in lipsa unei tehnologii de asemanare si corelare a proceselor si seturilor de date. In cod, legatura fizica intre date si tabelul mysql nu mai exista. Nu se mai pierde timp legand in cod elemente si concepte intre care legatura logica este evidenta in mintea programatorului. Asemanator, tag-urile din template-uri, fie ele de incluziune a elementelor de pagina, de solicitare a diferitelor componente precum campuri de formular, liste, cereri AJAX sau de inlocuire a unor date nu mai trebuie corelate cu entitatile corespunzatoare din php, fie ele array-uri, variabile, apeluri de functii, sau chiar rezultatul unor query-uri.

 

Asistentul phprel cauta singur tag-urile si entitatile php corespunzatoare lor, sau scrie automat query-urile necesare crearii entitatilor respective, pentru a inlocui in final valoarea corespunzatoare. Mai mult, verifica daca procesul curent trebuie schimbat sau controlat intr-un fel anume si cauta sa vada daca ati scris indicatii in acest sens, analizand functiile declarate de dumneavoastra pentru a gasi acele functii ale caror denumiri se refera la procesul curent. Daca o asemenea functie exista, atunci cu toate ca ea nu a fost legata concret in cod de respectivul proces, cu siguranta mediaza intre diferitele etape ale procesului, si nucleul phprel o apeleaza si o foloseste pentru a modifica procesul. Concret, daca pe pagina cu lista respectiva dorim sa intervenim in procesul de afisare a utilizatorilor, si sa despartim codul unic de inregistrare in doua siruri, codul de tara si numarul unic, este suficient sa adaugam o functie care sa contina denumirea tabelului si a campului, precum si un sir de caractere de identificare a procesului dorit, de exemplu "output", iar in corpul functiei sa realizam respectiva impartire. Functia este automat descoperita de phprel, corelata cu listarea din tabelul "utilizatori" si cu afisarea campului "cui" si este apelata la momentul potrivit pentru a modifica procesul de afisare.

 

Tehnologia inovativa folosita in construirea asistentului phprel permite asadar analiza, interpretarea si corelarea diferitelor componente si elemente create sau incluse in sursele paginii.

 

Firul executiei nu este prestabilit, ci se auto-decide la fiecare pas, in functie de noile descoperiri, noile rezultate ale interpretarilor si noile corelari. O data legaturile stabilite, asistentul apeleaza la ajutorul celorlalte module phprel, care se afla si la dispozitia dumneavoastra, pentru a crea sau completa componentele necesare paginii. Mai exact, foloseste aceleasi functii pe care le folositi si dumneavoastra pentru a crea, de exemplu, un formular sau o lista sau pentru a afisa continut in pagina. Acest lucru permite framework-ului phprel sa lucreze impreuna cu dumneavoastra la crearea propriu-zisa a paginii si in acelasi timp va permite dumneavoastra sa controlati usor care procese vor fi realizate de dumneavoastra si care vor fi realizate asistat sau automat.

 

Sa detaliem in continuare tehnologiile incluse in phprel pentru construirea unor pagini bogate in continut si usor de experimentat. O atentie deosebita a fost acordata tehnologiei de tip A.J.A.X.., care a fost implementata intr-o varianta inovativa ce permite solicitarea rapida a continutului si crearea rapida a raspunsurilor la cereri. Fara a fi necesar sa scrieti cod javascript, se pot crea usor cereri AJAX si raspunsuri la cereri sub forma unor handlere usor de scris. Acestora li se inainteaza automat parametrii cererii pe baza carora creaza raspunsul intr-un format simplu de utilizat, bazat pe array-uri asociative, care va fi apoi impachetat automat ca xml de nucleul phprel. Sunt de asemenea puse la dispozitie metode de incarcare a continutului unei pagini sau a unor elemente de pagina prin AJAX, de trimitere a formularelor prin AJAX (prin simpla specificare a atributului "method" ca fiind "async", de la "cerere asincrona javascript + xml" – AJAX) si de validare a formularelor prin AJAX. In doar cateva minute veti putea realiza orice operatiune prin AJAX, fie ca se refera la validari, obtinere de informatii, modificarea paginii sau realizarea oricarei alte operatiuni personalizata pentru proiectul dumneavoastra.

 

In plus, o tehnologie inovativa de caching asigura incarcarea rapida a paginilor chiar si in conditiile unui trafic intens. Cache-ul salveaza continutul paginii la o prima afisare si il reda aproape instantaneu la accesarile ulterioare. O serie de algoritmi verifica rapid corectitudinea continutului din cache inainte de afisare, iar atunci cand acesta a expirat si trebuie regenerat, declaseaza incarcarea obisnuita a paginii. Cache-ul se adapteaza in functie de reusitele sau esecurile precedente si mareste sau scade dinamic intervalul maxim de reimprospatare pentru fiecare pagina. In plus, baza de date este monitorizata pentru a detecta schimbari ce pot modifica parti ale paginii curente. Nu in ultimul rand, o functie inovativa a cache-ului permite firelor paralele de executie sa comunice intre ele si sa transfere continut pentru a grabi afisarea solicitarilor simultane in cazul traficului foarte intens. Am vrut sa va oferim un framework de dezvoltare rapida, capabil sa indeplineasca sarcini web simple, medii si complexe dar care sa reuseasca sa fie si performant in acelasi timp. Cu cache-ul adaptiv inclus in phprel, performanta este asigurata: un consum de resurse scazut si un timp de raspuns de ordinul milisecundelor.

 

De asemenea, accesul la baza de date este intermediat de nucleul phprel care completeaza automat query-urile (de exemplu daca uitati sa scrieti o conditie de "order" sau o conditie obligatorie de "where", sau daca specificati doar tabelele din care selectati date, nu si campurile) si selecteaza automat baza de date (in cazul in care exista mai multe baze de date, cea corecta va fi dedusa pe baza tabelelor care apar in query) sau chiar executa o serie de query-uri separate si uneste rezultatele pentru a va permite sa interogati multiple baze de date simultan, ca si cum ar fi o singura baza de date. Mai mult, operatiile de scriere si citire pe baza de date sunt automat intermediate de anumite functii adaugate de dumneavoastra pentru a controla fluxul de date. Aceasta tehnologie va permite sa stabiliti formatari standard ale datelor pentru intreaga aplicatie precum si exceptii pe anumite pagini, si sa aveti un control complet asupra relatiei intre datele din tabele si continutul paginilor afisate. O singura schimbare intr-un singur loc va controla formatul pentru intreaga aplicatie, modificarile neprevazute putand fi integrate foarte usor. Tehnologia pusa la dispozitie in accesul bazei de date asigura coerenta datelor la nivelul intregii aplicatii si un control complet asupra proceselor de citire si scriere in baza de date. Mai mult, ofera o reprezentare conceptuala si logica a bazei de date pentru un acces usor si rapid si comunica asistentului phprel informatiile necesare privind structura bazei de date pe care le va folosi in predictiile si corelatiile realizate automat.

 

Nu in ultimul rand, url rewrite-ul si suportul multilanguage au fost implementate transparent in phprel pentru maximum de viteza si confort in dezvoltare. Veti putea rescriere orice url in doar cateva randuri de php, fara nici o interventie in ".htaccess" si veti lucra mai departe in pagina ca si cum url-ul este unul clasic. Aplicatia va functiona transparent si pentru url-uri rescrise, si pentru url-uri clasice, si nu veti fi nevoit sa transformati denumiri in id-uri sau sa inlocuiti manual caractere speciale folosite in url: totul se realizeaza automat in nucleul phprel, iar dupa procesul de analiza si interpretare a url-ului, totul decurge transparent, ca si cum s-ar fi accesat un url clasic. Similar, la scrierea unei aplicatii in mai multe limbi, veti scrie codul ca si cum este vorba de o singura limba, iar nucleul phprel va modifica automat query-urile de scriere si citire din baza de date pentru a accesa valorile corespunzatoare limbii curente.

 

In ceea ce priveste restrictionarea accesului la resursele aplicatiei, o tehnologie inteligenta permite nucleului phprel sa evalueze continutul paginii si sa decida care tag-uri contin linkuri sau butoane ce realizeaza actiuni sau duc catre pagini restrictionate, si sa modifice automat continutul paginii pentru a se potrivi cu politica de securitate aplicata in cazul utilizatorului curent. Suplimentar, query-urile sunt verificate individual automat, pentru a se conforma politicii de securitate aplicata paginii curente, iar query-urile care nu corespund nu vor fi executate sau vor fi modificate pentru a avea efect doar asupra acelor linii din baza de date la care utilizatorul are acces. Cu phprel, veti implementa transparent politici de acces la informatie orientate atat pe pagini cat si pe date (prin acordarea sau refuzul accesului la anumite linii din tabele), prin simpla definire a politicii de acces, fara sa va faceti griji ca trebuie sa modificati fiecare query in parte sau trebuie sa controlati fiecare template in parte.

 

Creati aplicatii care ofera mai mult, intr-un timp mai scurt. Tehnologii de varf, implementate inovativ. Intr-un cuvant: phprel.