simpel php klasse

, simple php klassebaseret være,,,,, 1,,,,,,,,, 5,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, men normalt er det tilrådeligt at anvende en form for ramme eller cms, undertiden et projekt er lille nok sådan, at disse optioner vil tynge udvikling.men selv i mindre projekter, hvor repræsentative elementer fra backend anmodning bør ikke ignoreres.denne lektion vil følge dig gennem oprettelse af en grundlæggende klassebaseret være motor for folkesundhedsprogrammet og mysql.,,,, trin 1.fælde det projekt, den første ting, vi skal gøre, er at gøre nogle specifikke dokumenter og registre.her er hvad jeg gerne fælde mine projekter.du kan selvfølgelig har det ret til at ændre navnene og struktur i din smag.bare sørg for at ændre kræver senere på., telefonbøger, får vi brug for en ny fortegnelse over holde alt.i dette tilfælde, jeg kaldte det, tut,.inde i det, jeg lagde min konfiguration filer i et register, conf.så, jeg vil lave en, inc, directory (kort til at omfatte) og sætte et "klasse" directory indeni. tilsættes filer, så indenfor, /conf, vil vi gøre, ud. folkesundhedsprogrammet.indenfor, inc. /klasse, vi vil gøre, dal. folkesundhedsprogrammet.endelig, i den grundlæggende erhvervsuddannelse, vi vil gøre, index.php,.,, dal står for "adgang til data lag" eller "adgang til data link". i flere niveauer arkitektur, er det hovedsagelig bruges til at oversætte database indeholder resultater til objekter og omvendt.,, trin 2.opsætning af databasen, er vi nødt til at lave en database og forsyne det med nogle data.i forbindelse med denne forelæsning, vil det bare være en to - tabel database med en eneste mange forhold.det er bare så vi kan vise vores være motoren i mindst ét forhold, skabe tabeller, så i en database, der hedder "tut", lad os få et bord, får, og en tabel kaldet, modeller.de gør, tabel har områder "id" og "navn" og de modeller, tabel har områder "id", "" og "navn".,, tilføje nogle oplysninger, nu kan vi tilføje nogle gør (som ford, chevy osv.), som giver data i tabel og nogle modeller, at disse producenter er ansvarlige for. denne forelæsning antager, du har viden om databaser og sql, så jeg vil ikke gå i detaljer om de forhold /udenlandske centrale fælde.,, trin 3.databasen forbindelse, normalt, jeg kan ikke lide at arbejde med rå konstanter i folkesundhedsprogrammet.jeg vil typisk definere en masse ting, så få nogle funktioner til i disse konstanter.i dette eksempel, lad os holde tingene enkle og anvende konstanter., definere forbindelse variabler, i vores /conf /config.php, fil, lad os fælde vores database forbindelse variabler.mens vi er ved det, så lad os kaste en omfatter vores dal.php manuskript. <?php //omfatter dal require_once (dirname (dirname (__file__))./inc. /klasse /dal. folkesundhedsprogrammet); //database, definere ('db_host "," localhost); at definere (' db_user "," rod "); at definere ('db_password", "password1); at definere (' db_db", "tut).> denne fælde går ud fra, du kører mysql på misligholdelse havn. skabe forbindelse funktion, så indenfor, inc. /klasse /dal. php, vil vi få en funktion, som vi vil bruge til at forbinde vores database. den forbindelse, samt alle kommende forespørgsler, vil leve. i en klasse, der hedder, dal.at alle database inddragelse i samme klasse, giver os mulighed for at manipulere med vores spørgsmål senere uden at behøve at røre ved eller præsentation lag manuskripter.også det giver til en vis grad latterliggør namespacing. i forbindelse med denne klasse, vil vi tilføje en konstruktør, selv om det ikke er nødt til at gøre noget. <?php klasse dal {offentlige funktion __construct() {} privat funktion dbconnect() {$5 = mysql_connect (db_host, db_user, db_password) eller dø "(< br /> kan ikke forbinde med mysql server"); mysql_select_db (db_db, $5) eller dø "(< br /> kunne ikke vælge den angivne database"); tilbage $5.}}?> bemærker, at omfanget af, dbconnect, metode er privat.det er, fordi vi ikke behøver at forbinde til databasen uden for vores dal.i stedet får vi offentlige forespørgsel metoder, som vil kalde dbconnect inde fra dal.en smule forvirrende?ingen bekymringer, læst om.,, trin 4.skabe generelle spørgsmål værktøjer til abstrakt vores spørgsmål, således at vi kan genbruge kort stykker af kode, vi får brug for to ting.for det første en slags "generiske forespørgsel følge" klasse.øjeblik, har vi brug for et generisk afprøvet metode i vores dal. skabe generiske forespørgsel følge klasse, er formålet med alt dette er at være i stand til at konvertere sql forespørgsler til objekter og minimere brugen af den grimme, mens ($ro = mysql_fetch_array ($resultat), loop.genstande, som er langt lettere at arbejde med og gøre det muligt for os at bruge egenskaber i stedet for array - nøgler. kort sagt, ønsker vi at gøre en klasse, der vil skabe ejendom navne på føre og opbevare data i forbindelse med sådanne egenskaber. vi vil sætte denne klasse i vores, inc. /klasse /dal.php, manuskript.da det er en ny klasse, det vil være uden for dal. klasse, klasse dalqueryresult (private $_results = array(); offentlig funktion __construct() {} offentlig funktion __set ($var $val) ($- > _results [var] = $$val;} offentlig funktion __get ($var) {(isset ($- > _results [var] $) {tilbage $- > _results [$var]} {tilbage, for ellers;}}}, skabe generelle spørgsmål metode, så indenfor vores dal, klasse, vi er nødt til at fremsætte en generel anmodning metode det vil få, udvælge, forespørgsler til dalqueryresult, genstande, vi vil vende tilbage til en ejendom inden hvert navn på, dalqueryresult, objekt. privat funktion forespørgsel ($sql) ($- > dbconnect(). $res = mysql_query ($sql); hvis ($res) (hvis (strpos ($sql,'select) = = = falske) {tilbage.}} andre (hvis (strpos ($sql,'select) = = = falske) {tilbage falske} {tilbage, for ellers;}} $resultater = array(); mens ($ro = mysql_fetch_array ($res)) ($resultat = nye dalqueryresult(); for hvert ($træk som $k = > $v) ($resultat - > $k = $v} $resultater [] = $resultat;} tilbage $resultater). her er en privat funktion, der accepterer en sql forespørgsel.det forbinder til databasen og i forespørgslen.så det kontrol for at se, om der er nogen resultater.hvis der ikke er nogen resultater, det vender tilbage for en, udvælge, søgning, falske på andre spørgsmål.hvis forespørgslen var vellykket, og det spørgsmål, var ikke en, udvælge, søgning, vil den vende tilbage.hvis det var en, udvælge, så det er resultaterne i en række dalqueryresult objekter.dette svarer til de resultater, som man normalt ville komme fra en mysql_query.,, trin 5.skriv et specifikt spørgsmål, nu er vi klar til at skrive en sql forespørgsel.dal forespørgsler skal være meget specifik i både navn og formål.lad os gøre det finder alle modeller af en bestemt gøre. det vil være vores første offentlige metode. offentlige funktion get_models_by_make_name ($navn) ($sql = "vælg models.id som id, models.name som navn, makes.name som fra modeller indre med gør på modeller. = makes.id hvor gør. = $navn"; tilbage $- > søgning ($sql)}, her er vi bare skrive forespørgslen og returnerer resultatet i form af dalqueryresult objekter.vores generelle oplysninger, metode tager sig af itterations og beslutningstagning. færdig dal, på dette punkt, at vores, dal.php, manuskriptet er færdigt.det skal se ud, som om følgende. <?php klasse dalqueryresult (private $_results = array(); offentlig funktion __construct() {} offentlig funktion __set ($var $val) ($- > _results [var] = $$val;} offentlig funktion __get ($var) (hvis (isset ($- > _results [$var.]) {tilbage $- > _results [$var]} {tilbage, for ellers;}}} klasse dal {offentlige funktion __construct() {} offentlig funktion get_models_by_make_name ($navn) ($sql = "vælg models.id som id, models.name som navn, makes.name som fra modeller med gør den indre modeller. = makes.id hvor gør. navn = $navn"; tilbage $- > søgning ($sql)} privat funktion dbconnect() {$5 = mysql_connect (db_host, db_user, db_password)eller dø "(< br /> kan ikke forbinde med mysql server"); mysql_select_db (db_db, $5) eller dø "(< br /> kan ikke vælge den angivne database"); tilbage $5.} privat funktion forespørgsel ($sql) ($denne - > dbconnect(). $res = mysql_query ($sql); hvis ($res) (hvis (strpos ($sql,'select) = = = falske) {tilbage.}} andre (hvis (strpos ($sql,'select) = = = falske) {tilbage falske} andet (tilbagevenden for;}} $resultater = array(); mens ($ro = mysql_fetch_array ($res)) ($resultat = nye dalqueryresult(); for hvert ($træk som $k = > $v) ($resultat - > $k = $v} $resultater [] = $result;} tilbage $resultater).>,, trin 6.brug den dal, lad os nu endelig hen til vores, /index.php, manuskript og vise vores resultater ved hjælp af en dal.det eneste vi skal gøre er at inddrage vores, /conf /config.php, fil, instantiate dal, og gøre noget ved de data.her er et eksempel. <?php //omfatter konfiguration require_once (dirname (__file__)./conf/config.php'); //instanciate a new DAL $dal = new DAL(); //array of makes to check $makes = array('Ford','Chevy','Honda'); //cycle through the makes foreach ($makes as $make){ $results = $dal->get_models_by_make_name($make); echo "<h1>Models by $make</h1>"; //check if there were any results if ($results){ \techo "<ul>"; \t \t//cycle through results \tforeach ($results as $model){ \t\techo "<li>$model->make $model->name (Database ID: $model->id)</li>"; \t} \techo "</ul>"; } else{ //Display a message concerning lack of data \techo "<p>Sorry, we have no information regarding that manufacturer.</p>"; } } ?>, som du kan se, har vi nu resultater, som vi kan kalde marken navne som egenskaber af folkesundhedsprogrammet objekt.,, trin 7.at gå et skridt videre, ofte, vil det være nyttigt at omdanne den generiske, dalqueryresult, til en mere specifikke formål.i dette tilfælde kan du skrive forretningsformål, at acceptere, dalqueryresult, som pågældende parameter.så, du bruger det til at bygge den nye ting, her er et eksempel, <?php klasse carmodel (private $_id; private $_make; private $_name; offentlig funktion __construct (dalqueryresult $resultat) ($- > _id = $resultat - > id. $- > _make = $resultat - > gøre. $- > _name = $resultat - > navn} offentlig funktion __get ($var) (skift ($var) {"id": afkast $- > _id; bryde; sag "gøre": afkast $- > _make; bryde; sag navn: $det tilbage - > _name; bryde; default: afkast for; pauser) offentlig funktion __tostring() {tilbage $- > _name;}}?>, så skriv en forespørgsel til at vende tilbage til en række af disse genstande i stedet for en række generiske, dalqueryresult, genstande, husk, altid navn dine spørgsmål meget specifikt.,, offentlig funktion get_models_by_make_name_as_carmodel ($navn) (//genbrug eksisterende forespørgsel $resultater = $- > get_models_by_make_name ($sql); //se resultater, hvis!$) {tilbage $resultater;} andre (//system til at holde carmodel objekter $object_results = array(); //cyklus, og konverteres til carmodel objekter for hvert ($resultater som $resultat) (object_results [] = nye carmodel ($resultat)} //afkast vifte af carmodel ting tilbage object_results;}}, bygning af bestemte genstande kan være meget nyttige, når de beregninger, der er nødvendige for at få meningsfulde data fra marker,.,, håber i nød tutor.held og lykke.






Previous:
Next Page: