Å lære språk har aldri vært så enkelt! La deg vise med PHP-tutorialen hvordan du lager nettsiden din basert på objektorientert programmering.
Du kan forvente deg en PHP-opplæring om objektorientert programmering – grunnleggende prinsipper og praksis.
Av hele mitt hjerte: Velkommen til kurset! Her er en oversikt over hva som venter deg.
Nå starter vi med oppsettet av utviklingsmiljøet ditt. Her finner du den nødvendige programvaren.
Hvilken editor er det riktige valget for eksemplene? Her finner du svaret.
Jeg jobber i kurset med PhpStorm. I denne leksjonen vil jeg vise deg hvordan eksemplene også kan åpnes i andre redaktører.
Er du allerede full av motivasjon? Et lite tilbakeblikk på praksisprosjektet etter denne videoen.
I PHP 7 har noen ting endret seg. Her finner du en oversikt over noen av de mest åpenbare endringene.
For å gjøre grunnleggingskapittelet litt mer spennende, fyller du ut en luke tekst her ved siden av. Last ned malen, skriv den ut og jobb med den mens du går gjennom kapitlet.
Her legger du den viktige grunnlaget, fordi objekter er ikke bare en samling av data og funksjoner. En viktig introduksjon til temaet.
Når det snakkes om objektorientert programmering, vil begrepet "klasse" før eller senere dukke opp. Men hva betyr egentlig dette?
Datakapsling er et viktig grunnprinsipp. I denne leksjonen vil du lære ideen bak det å kjenne.
Uten abstraksjon ville programvaren din bli ganske uoversiktlig veldig raskt, og ønsket forenkling oppnås ikke. Se på denne videoen og lær deg å tenke mer abstrakt.
Også arv støtter arkitekturen av programvaren din. Lær å forstå den og bruk den bevisst.
Polymorfien kan best forstås i praksis. Likevel bør du på dette tidspunktet i det minste ha hørt om det.
Har du fylt ut mellomromsteksten nøye? Veldig bra! Nå kan du sjekke den her.
Fra teori til praksis. Her går du nå over til å implementere med PHP.
En klasse er oppskriften for objekter. I PHP opprettes en instans med stikkordet "new". Her lærer du hvordan det gjøres.
Egenskapene til en klasse beskriver objektet nærmere. Bli bedre kjent med dette konseptet.
Konstantene er en ekstra måte å lagre statiske verdier på. Her vil du også lære dette prinsippet.
Det er noen generelt aksepterte konvensjoner eller "Best Practices" når det gjelder navngivning av variabler og lignende. Og det er det vi fokuserer på her.
Kjenner du prinsippene "PassByValue" og "PassByReference"? De er ekstremt viktige når du jobber med objekter. Her vil du lære hvorfor.
Den første introduksjonen er over. Fordyp dine kunnskaper med den første øvingsoppgaven.
En mulig løsning på oppgaven finner du her.
Nå lærer du den grunnleggende syntaksen for deklarasjon av funksjoner.
Virkelig dynamiske metoder oppnås bare gjennom parametere. Her vil du også lære om disse.
Metoder kan ikke bare kjøre kildekode og produsere utdata. Her lærer du hvordan verdier returneres til kalleren.
Du kan lagre metodenavnet i en variabel før du kaller den, og deretter bruke variabelen videre. Lær dette her.
Det er ulike gyldighetsområder som du bør kjenne til. Her lærer du dem å kjenne.
Neste øvelsesoppgave står for tur. Denne gangen handler det om emnet "Metoder".
Den mulige løsningen på øvingsoppgaven om metoder finnes i denne leksjonen.
Når du jobber med objekter, spiller referanse til det aktuelle objektet ("$this") og referanse til den aktuelle klassen ("self") en spesiell rolle. Her vil du lære begge deler.
Når du oppretter og ødelegger objekter, kan du utføre din egen logikk. For dette brukes konstruktører og destruktører. Lær prinsippet her.
Lær her syntaksen for arv i PHP.
Hvis du arver fra en klasse, kan du referere til den øvre klassen ved hjelp av nøkkelordet "parent". Her viser jeg deg hvordan det gjøres.
En sentral betydning har synligheten. Lær nå nøkkelordene "public", "private" og "protected" å kjenne.
Synligheten refererer ikke bare til egenskaper. Her overfører du kunnskapen også til metoder.
Et viktig stilistisk virkemiddel er de såkalte grensesnittene (grensesnittene). I denne leksjonen ser du dem på eksempelet.
Også i vårt praktiske eksempel spiller statiske metoder en viktig rolle. Bli bedre kjent med konseptet her.
Abstrakte klasser og metoder er et annet stilistisk verktøy for programvarearkitekter. Også de må du absolutt lære deg.
En metode kan ikke lenger overskrives? Da gjør dette synlig med nøkkelordet "final".
Dybde arbeidet med objekter litt mer i denne øvelsen.
Her er løsningen på oppgaven.
Når objekter lagres i tekstform eller overføres via nettet, kalles det "serialisering". Lær hvordan det fungerer.
Ikke alltid fungerer serialiseringen feilfritt, f.eks., siden en forbindelse ikke gjenoppbygges automatisk etter at den er lest inn på nytt. Lær hvordan du kan gripe inn her i tillegg.
Med den magiske metoden "__invoke" muliggjør du direkte kall til objektene dine.
En vanlig metode er å beskrive objekter på en lesbar måte ved å bruke den magiske metoden «__toString». Denne presenterer jeg for deg i denne leksjonen.
Spesielt med en dynamisk datamodell kan du spare arbeid ved hjelp av magiske metoder som "get", "set" osv. Dette er noe du ofte vil se i praksis, og du må kjenne teknikken bak det.
For eksempel blir det ofte sjekket for spesifikke klasser i betingelser. Dette hjelper deg i PHP nøkkelordet "instanceof", som du nå vil lære om.
I PHP 7 ble innført: de anonyme klassene. De kan i noen situasjoner unngå unødvendig overhead. I denne videoen finner du et praktisk eksempel.
En kopi av objekter kan ikke opprettes via variabler. Bare referansen blir videreformidlet. Du kan imidlertid klone objekter. Her lærer du hva som er nødvendig for det.
I den objektorienterte verden er unntak viktig, da feilsituasjoner kan bli sendt videre over flere nivåer og bli behandlet på riktig sted. Lær hvordan du bruker dem.
Også nytt i PHP 7: Type-hints for skalare datatyper som "string", "int" osv. Her lærer du hvordan du bruker dem.
Også nytt i PHP 7: deklarasjon av returverdien til en metode. Her presenterer jeg syntaksen for dette.
Hittil har eksemplene vært veldig enkle. I praksis er strukturen mer kompleks. Der spiller autoload-en en sentral rolle. Lær hvordan du setter den opp.
I denne leksjonen legger du grunnlaget for en ryddig prosjektstruktur.
Prosjektstrukturen får nå den siste finpussen takket være navnerom. Lær dem å kjenne her.
Vil du bruke klasser fra andre navnerom? Her lærer du om import.
Om "Singleton Pattern" blir det bare opprettet en instans av en klasse. Her lærer du om implementeringen.
Vil du lese alle dataene fra en egen samling eller klasse? En iterator vil hjelpe deg med det.
En observer muliggjør en veldig løs kobling mellom ulike deler av applikasjonen din. Lær å kjenne dette designmønsteret nå.
Et fabrikk produserer instanser av klassene dine. Dette reduserer avhengighetene og sentraliserer kallene til konstruktørene dine.
Lær å kjenne Model-View-Controller-mønsteret før vi kaster oss ut i praksis.
Hva skjer her? Tenk motivasjon og se på sluttresultatet på forhånd.
En funksjon av applikasjonen vår: det sentrale inngangspunktet. Her tar du vare på de nødvendige rammene gjennom ".htaccess".
Behandlingen av URL-er og tilordningen av riktig klasse skjer gjennom oppstarten. Her oppretter du dem.
Den forespurte ressursen blir tilordnet kontrolleren og en handling.
Etter at ressursene kan etterspørres, må du selvfølgelig også tilby noen. Og akkurat det skjer her: via din første kontroller inkl. handling.
En databasestruktur er den nødvendige forutsetningen for videre anvendelse. Nå blir den forberedt.
I PHP 7 finnes ikke lenger funksjonene "mysql_*". Her får du lære å kjenne en objektorientert alternativ: PDO.
Utseendet vil fortsatt bli bestemt av HTML/CSS. Her lærer du hvordan integrasjonen kan realiseres.
Designet for gallerivisningen blir hentet fra malen her og deretter integrert.
En sentralt tilgjengelig grunn-URL finner du i de fleste rammeverk. Den kan f.eks. konfigureres eller angis separat for beskyttede sider som innlogging (eventuelt med https). Lær hvordan dette kan realiseres.
Du har allerede blitt kjent med "Factory Design Pattern". Her blir det nå også brukt.
Før brukere kan lastes inn i applikasjonen, trengs en modell. Og akkurat dette blir nå opprettet.
Også økter støttes av galleriet. Her vil påloggingen nå bli gjennomført i første steg.
Er du logget inn? Ønsker du å logge ut igjen nå? Begge funksjonene vil bli sjekket i denne leksjonen.
Innloggingen mislyktes. Her lærer du å lese verdier fra økten.
Enda en funksjon, ny kontroller: Behandle skjemaer. Her møter du forberedelsen.
Opplastingen må behandles etter "POST-requesten". Her vil du lære alle nødvendige steg.
Et nytt bilde er blitt overført vellykket. En referanse til dette blir lagret i databasen.
Her lærer du å administrere varslingene i sesjonen enda bedre.
De opplastede bildene vil bli skalert til en fellesnevner (samme høyde) her.
Prakteksempelet blir utvidet med en øvingsoppgave om brukerregistrering.
En løsning for oppgave nr. 4 finner du her.
MVC-arkitekturens styrker utnyttes, og en annen kontroller med avvikende mal brukes for den samme databaselogen.
Den hittil svært statiske routingen blir optimalisert en gang til – med en egen konfigurasjonsfil.
Den tilpassede ruteløsningen må nå tas med i oppstarten.
For å kunne bruke API-en, blir bildene lastet opp via en iOS-app her.
Kommenter nå „PHP opplæring - objektorientert programmering: Grunnleggende og praksis.“