At lære sprog har aldrig været så nemt! Lad dig vise med denne PHP vejledning, hvordan du opretter din hjemmeside baseret på objektorienteret programmering.
Du kan forvente en PHP vejledning om objektorienteret programmering - grundlæggende og praksis.
Af hele mit hjerte: Velkommen til kurset! Her er en oversigt over, hvad du kan forvente.
Det går nu i gang med opsætningen af din udviklingsmiljø. Her finder du den nødvendige software.
Hvilken editor er det rigtige valg for eksemplerne? Her finder du svaret.
Jeg arbejder med PhpStorm i kurset. I denne lektion viser jeg dig, hvordan eksemplerne også kan åbnes med andre redaktører.
Er du allerede helt motiveret? Efter denne video lidt mere. Et sneak peak på praktikprojektet.
I PHP 7 er nogle ting ændret sig. Her finder du et overblik over nogle af de mest indlysende ændringer.
For at gøre grundlæggende kapitel lidt mere spændende, udfylder du en hulltekst her ved siden af. Download skabelonen, print den ud og bearbejd den, mens du gennemgår kapitlet.
Her lægger du den vigtige base, fordi objekter er ikke bare en samling af data og funktioner. En vigtig introduktion til emnet.
Når man taler om objektorienteret programmering, så falder begrebet "klasse" før eller senere. Men hvad handler det om?
Dataindkapsling er et vigtigt grundprincip. I denne lektion lærer du ideen bag det at kende.
Uden abstraktion ville din software meget hurtigt blive ret uoverskuelig, og den ønskede forenkling ville ikke blive opnået. Se denne video og lær at tænke mere abstrakt.
Også arv understøtter arkitekturen af din software. Lær at forstå den og brug den bevidst.
Polymorfien er lettest at forstå i praksis. I dette stadie bør du dog i det mindste have hørt om det.
Har du udfyldt hullerne i teksten omhyggeligt? Meget godt! Her kan du nu kontrollere den.
Fra teori til praksis. Her går du nu i gang med implementeringen med PHP.
En klasse er byggeplan for objekter. I PHP oprettes en instans med nøgleordet "new". Her lærer du, hvordan det gøres.
Klassens egenskaber beskriver objektet nærmere. Lær dette koncept nærmere at kende.
Konstanterne er en ekstra måde at gemme statiske værdier på. Her lærer du også dette princip at kende.
Der er nogle generelt accepterede konventioner eller "Best Practices" ved navngivning af variabler og lignende. Og det er dem, det drejer sig om her.
Kender du principperne "PassByValue" og "PassByReference"? De er ekstremt vigtige, når man arbejder med objekter. Her vil du opdage hvorfor.
Den første introduktion er overstået. Dyk ned i din viden med den første øvelsesopgave.
En mulig løsning på opgaven finder du her.
Nu lærer du den grundlæggende syntaks til deklaration af funktioner.
Virkelig dynamiske metoder opnås kun gennem parametre. Her lærer du også at kende dem.
Metoder kan ikke kun køre kildekode og generere output. Her lærer du, hvordan værdier returneres til opkaldet.
Du kan lægge metodenavnet i en variabel før kaldet og bruge variablen videre. Lær dette her at kende.
Der er forskellige gyldighedsområder, som du bør kende. Her lærer du dem at kende.
Den næste øvelsesopgave står for døren. Denne gang handler det om emnet "Metoder".
Den mulige løsning på øvelsesopgaven om metoder findes i denne lektion.
Ved arbejde med objekter spiller henvisning til det aktuelle objekt ("$this") og reference til den aktuelle klasse ("self") en særlig rolle. Her lærer du begge dele at kende.
Ved at oprette og ødelægge objekter kan du udføre din egen logik. Til dette formål bruges konstruktører og destruktører. Lær princippet her at kende.
Lær her syntaxen til arv i PHP at kende.
Hvis du arver fra en klasse, kan du henvise til hovedklassen med nøgleordet "parent". Her viser jeg dig, hvordan det gøres.
En central betydning har synlighed. Lær nu nøgleordene "public", "private" og "protected" at kende.
Synlighed handler ikke kun om egenskaber. Her overfører du også viden til metoder.
Et vigtigt stilistisk redskab er de såkaldte grænseflader (interfaces). I denne lektion ser du dem i eksemplet.
Også i vores praksiseksempel spiller statiske metoder senere en vigtig rolle. Lær konceptet nærmere at kende her.
Abstrakte klasser og metoder er et andet værktøj til softwarearkitekter. Også dem skal du absolut lære at kende.
En metode kan ikke længere overskrives? Så gør det synligt med nøgleordet "final".
Dybde arbejdet med objekter lidt mere i denne øvelse.
Her er løsningen på øvelsen.
Når objekter bliver gemt i tekstform eller overført via nettet, kaldes det "seralisering". Lær, hvordan det fungerer.
Ikke altid virker serialization fejlfrit, f.eks., da forbindelsen ikke genoprettes automatisk efter genindlæsning. Lær, hvordan du her kan intervenere yderligere.
Med den magiske metode "__invoke" muliggør du direkte opkald af dine objekter.
En almindelig metode er at beskrive objekter på en læsbar måde ved hjælp af den magiske metode "__toString". Jeg vil introducere dig for denne i denne lektion.
Især med et dynamisk datamodel kan du spare arbejde ved hjælp af magiske metoder som "get", "set" osv. Dette ses ofte i praksis, og du skal kende teknikken bag det.
For eksempel kontrolleres der ofte for bestemte klasser under visse betingelser. Dette hjælper dig i PHP med nøgleordet "instanceof", som du nu vil lære at kende her.
I PHP 7 nyindført: de anonyme klasser. De kan i visse situationer undgå unødvendig overkompliceret kodning. I denne video finder du et praktisk eksempel.
En kopi af objekter kan ikke oprettes ved hjælp af variabler. Kun referencen videregives. Men du kan klone objekter. Her lærer du, hvad der er nødvendigt for det.
I den objektorienterede verden er undtagelser vigtige, da fejlsituationer kan blive sendt videre på tværs af flere niveauer og behandles på det rette sted. Lær at bruge dem.
Også nyt i PHP 7: Typehints for skalar datatyper som "string", "int" osv. Her lærer du at bruge dem.
Også nyt i PHP 7: deklarationen af en metodes returværdi. Her vil jeg præsentere syntaxen for dig.
Indtil videre har eksemplerne været meget enkle. I praksis er strukturen mere kompleks. Her spiller autoloaderen en central rolle. Lær, hvordan du implementerer den.
I denne lektion lægger du fundamentet for en ren projektstruktur.
Projektstrukturen får nu det sidste touch takket være namespaces. Lær dem at kende her.
Vil du gerne bruge klasser fra andre namespaces? Her lærer du import at kende.
Om "Singleton-mønstret" oprettes kun én instans af en klasse. Her lærer du at implementere det.
Vil du gerne læse alle data fra din egen samling eller klasse? En iterator kan hjælpe dig med det.
En observer muliggør en meget løs kobling mellem forskellige dele af din applikation. Lær dette designmønster at kende nu.
Et fabrik producerer instanser af dine klasser. Det minimerer afhængighederne og centraliserer kaldet til dine konstruktører.
Lær Model-View-Controller-mønstret at kende, før vi springer ud i praksis.
Hvad sker der her? Tænk motivation og se resultatet på forhånd.
En funktion i vores applikation: det centrale indgangspunkt. Her sikrer du de nødvendige rammebetingelser via „.htaccess“.
Behandlingen af URL'en og tildelingen af den korrekte klasse sker gennem bootstrapping. Her opretter du dem.
Den forespurgte ressource tildeles en controller og en handling.
Efter ressourcerne er blevet efterspurgt, er det selvfølgelig også nødvendigt at tilbyde nogle. Og præcis det sker her: via din første controller inklusive handling.
En databasestruktur er en nødvendig forudsætning for den videre anvendelse. Nu bliver den forberedt.
I PHP 7 er de "mysql_*"-funktioner ikke længere tilgængelige. Her lærer du en objektorienteret alternativ at kende: PDO.
Udseendet vil stadig blive bestemt af HTML/CSS. Her lærer du, hvordan integrationen kan realiseres.
Designet til gallerivisningen hentes herfra, og derefter integreres det.
En centralt tilgængelig basis-URL kan findes i de fleste rammer. Det kan f.eks. konfigureres eller angives separat for beskyttede sider som log ind (evt. med https). Lær hvordan dette kan realiseres.
Du har allerede lært det "Factory Design Pattern". Her kommer det nu også i brug.
Før brugere kan indlæses i applikationen, er der behov for en model. Og netop dette bliver nu oprettet.
Også sessioner støttes af galleriet. Her vil log ind blive implementeret i første omgang.
Er du logget ind? Ønsker du nu at logge ud igen? Begge funktioner vil blive testet i denne lektion.
Log ind mislykkedes. Her lærer du at læse værdier fra sessionen.
Endnu en funktion, ny controller: Behandling af formularer. Her støder du på forberedelsen.
Upload skal behandles efter "POSTRequest". Her lærer du alle nødvendige trin at kende.
Et nyt billede blev succesfuldt overført. En reference til dette bliver gemt i databasen.
Her lærer du bedre at administrere beskederne i sessionen.
De uploadede billeder bliver skaleret til en fællesnævner (samme højde) her.
Praksiseksemplet udvides med en øvelsesopgave om brugerlog ind.
En løsning for opgave #4 kan findes her.
MVC-arkitekturens styrker udnyttes, og en yderligere controller med en afvigende skabelon bruges til den samme database-logik.
Den hidtil meget statiske routing optimeres yderligere - med en egen konfigurationsfil.
Den tilpassede routing løsning skal nu tages i betragtning under bootstrapping.
For at kunne bruge API'en skal billederne uploades via en iOS-app her.
Kommenter nu „PHP-vejledning - objektorienteret programmering: Grundlæggende principper og praksis“