KURSPLAN PHP Utvecklare MMPU13 Förkortad version för LIA-information Utbildningsledare: Peter Jacobsen Teknikhögskolan Barkgatan 6, 214 22 Malmö 040-20 48 92 peter.jacobsen@plushogskolan.se
Innehåll Webbproduktion... 3 Grundläggande programmering... 4 PHP/MySQL... 5 Produktionstekniker... 6 CMS-teori... 7 Kompletterande tekniker... 8 Objektorienterad programmering... 9 PHP/MySQL del 2... 10 CMS aktuella system... 11 PHP fördjupning... 12 Lärande i Arbete, LIA... 13 Examensarbete... 13 Litteraturlista... 14 2 av 14
Delkurs 1 Webbproduktion Yh-poäng: 15 Kursens mål är att lära sig grundläggande webbproduktion med HTML och CSS, att strukturera innehåll semantiskt samt omsätta en skiss till en publicerad html-sajt. Formgivning, typografi och läsbarhet för webb med hjälp av HTML5 och CSS. HTML-element och DOM Semantisk HTML taggar/entiteter som avspeglar innehållsstruktur Hur arv, selektorer och attribut används inom CSS Grundläggande förståelse för vad responsive design innebär. Organisation och anpassning av innehåll via olika innehålls- och menystrukturer. Justering av fotografier och bilder (nivåer, ljushet, upplösning etc, optimering och filformat för webben) Grundläggande om HTML-formulär Genomgång av texteditor för programmering Installation och användning av lokal webbserver Skissarbete Bygga sajt utifrån skiss Publicering av sajt med FTP (fakta, förståelse, färdighet, förtrogenhet) inom: Design och skiss för webben Grundläggande informationsarkitektur för webbsidor Grunderna inom HTML CSS-design Produktionsverktyg Disposition av och inkluderande av filer i HTML-dokument Filstruktur för HTML-sajt Publicering med FTP 3 av 14
Delkurs 2 Grundläggande programmering Yh-poäng: 20 Kursen ger den studerande såväl teoretiska som praktiska grundläggande kunskaper om programmering. I inledningen av kursen fokuseras på programmering i allmänna termer, oavsett vilket programmeringsspråk som skall användas i systemutvecklingen. I kursens praktiska del introduceras den studerande i JavaScript och PHP. Programmeringens grunder Orientering i JavaScript och PHP, likheter, skillnader och användningsområden Grundläggande applikationsdesign (planering och utförande) Separation av data, logik och presentation Semantisk namngivning Enkla programmönster (standardlösningar), felsökning och felhantering JSON (Javascript Object Notation) Disposition/konstruktion av en enkel JavaScript-applikation Disposition/konstruktion av en enkel PHP-applikation Introduktion till AJAX (XHR) och asynkron kommunikation mellan klient (JavaScript-applikation) och server (PHP-applikation) variabler, funktioner, logiska jämförelser kontrollstrukturer, upprepningar (olika sorters loopar) vanliga datatyper typiska applikationsstrukturer kodkommentarer och dokumentation metoder och verktyg för felsökning (debugging) praktisk konstruktion av enklare applikationer kommunikation mellan applikationer som koncept 4 av 14
Delkurs 3 PHP/MySQL Yh-poäng: 20 Kursens mål är att den studerande lär sig disponera och skapa PHP-applikationer som samverkar med databaser samt lär sig grundläggande SQL och databasmodellering. PHP och HTML: Enkel sida med formulär PHP och HTML: Formulärdata till/från formulär PHP och MySQL: Databaskoppling med PDO PHP och MySQL: Skicka kommandon till MySQL-databas med hjälp av PDO i PHP PHP och MySQL: Ta emot resultat och data ifrån MySQL med hjälp av PDO i PHP Introduktion till MySQL och relationsdatabaser Datatyper i MySQL Privilegier i MySQL Skapa tabeller av relevant databastyp och kollationering Skapa kolumner med relevanta datatyper CRUD (Create/Insert, Read/Select, Update, Delete) i MySQL Förekommande syntaxformer vid Insert och Update Logiska jämförelser och mönstermatchning i MySQL Översikt strängfunktioner i MySQL Nycklar och index i mysql Modellering av relationsdatabas efter 3 första normalformerna Inner Join (Implicit och Explicit) i MySQL Översikt övriga JOINs SQL-språkets uppbyggnad PHP Data Objects (PDO) som interface mot MySQL Publicering av PHP-dokument på webbserver Publicering av databas på webbserver 5 av 14
Delkurs 4 Produktionstekniker Yh-poäng: 15 Kursens mål är att den studerande lär sig att planera och arbeta i större grupp samt parprogrammera, enligt gängse agila metoder, liksom att lära sig använda sig av versionshanteringssystem. Orientering i Agil metodik Gruppövningar i Agil metodik Parprogrammeringsövningar Genomgång av hur versionshanteringssystem fungerar Att sätta upp och komma igång med versionshanteringssystem Hur man hämtar och hur man skapar ett versionshanterat projekt Utbildning och praktiska övningar med vanliga/nödvändiga kommandon Hur man hanterar versionskonflikter och versionssammanslagningar Hur man planerar och sätter upp publicerings- och utvecklingsstrategier med versionshanteringssystem, och hur man publicerar. Om tids-/omfattningsuppskattningar och om att förhålla sig till sådana. Agil projektmetodik Parprogrammering Versionshantering med Git eller liknande aktuellt system Publicering med versionshanteringssystem 6 av 14
Delkurs 5 CMS-teori Yh-poäng: 15 Kursens mål är att den studerande lär sig planera för CMS-projekt där man genom arbete i grupp lär sig upptäcka och kartlägga informationsstrukturer och modellera data mot CMS:er, lär sig att skapa skisser för CMS-projekt samt lär sig skriva och upprätthålla kravspecifikationer i dialog med uppdragsgivare. Vidare ska den studerande orienteras i aktuella CMS:er och få lära sig att praktiskt applicera datamodeller i ett CMS. CMS (Content Management System) från grunden Informationsarkitektur (Klassificering, ordningsscheman, hierarkier) Informationsmodellering (Datamodeller) CMS:er och informationshantering (Orientering i aktuella CMS:er och applicering av datamodeller i dessa) Kravspecifikationer (levande informella specifikationer i agilt arbetssätt) Wireframing Informationsarkitektur Informationsmodellering Aktuella CMS:er och hos dessa typiska förekommande datastrukturer Kravspecifikation ur agilt perspektiv Wireframing 7 av 14
Delkurs 6 Kompletterande tekniker jquery och andra JavaScript- bibliotek Yh-poäng: 15 Kursens mål är att lära ut användning av bibliotek och ramverk i JavaScript, främst jquery. Kursen ger utrymme för att med självstudier undersöka andra aktuella bibliotek/ramverk. Aktuella JavaScript-bibliotek och ramverk, orientering och exempel DOM- och CSS-manipulation med jquery Event handling med jquery AJAX (XHR) med jquery Att skriva egna jquery-plugins Användning av olika JavaScript-bibliotek jquery DOM- och CSS-maniplulation Events AJAX (XHR) Plug-Ins 8 av 14
Delkurs 7 Objektorienterad programmering Yh-poäng: 15 Kursens mål är de studerande ska lära sig grunderna inom objektorienterad programmering. Grundläggande problemlösning med hjälp av OOP-koncept: Nedbrytning av en uppgift till en avgränsad problemställning Formalisering av en delmängd av verkligheten via uppdelning i saker/entiteter och förhållandet mellan dessa (objekt, relationer) Olika entiteter kan utföra olika handlingar (metoder) och ha olika egenskaper Orsak och verkan (events och event listeners) Val av arv eller komposition som strukturell lösning Abstrakta klasser Polymorfism Olika implementationer av OOP Objekt i JavaScript Prototypbaserat arv (JavaScript) Skapa objekt med Factorymetoder (JavaScript) Klasser och objekt i PHP Klassbaserat arv (PHP och abstraktion av i JavaScript) Privata och skyddade egenskaper och metoder Skillnader mellan prototypbaserat och klassbaserat arv Objektorienterad programmering som koncept Objekt Klasser/konstruktorer Arv Komposition OOP i JavaScript OOP i PHP 9 av 14
Delkurs 8 PHP/MySQL del 2 Yh-poäng: 15 Kursens mål är den studerande ska fördjupa sig inom objektorienterad programmering med särskilt fokus på separation av data/logik/presentation. OMT (Object Modelling Technique) Design patterns inom OOP SRP (Single Responsibility Principle) MEPs (Message Exchange Patterns) REST (Representational State Transfer) MVC (Model View Controller) Mallar (templating) Dynamiska SQL-frågor Dynamiska anrop, routing och mapping i OOP Dynamiska frågor till databas MEP och RESTful services Separation av data/logik/presentation och MVC-koncept 10 av 14
Delkurs 9 CMS aktuella system Yh-poäng: 40 Kursens mål är att den studerande lär sig hantering och modifiering av aktuella CMS såsom Wordpress och Drupal, liksom får kännedom om och översikt av andra aktuella system. Genomgång av aktuella ledande system som exempelvis Wordpress och Drupal Likheter och skillnader mellan dessa system Hantering och modifiering av dessa system Översikt av andra aktuella CMS:er För de aktuella ledande CMS:er vi fördjupar oss i: Installation Administrationsgränssnitt Datamodeller och kodstrukturer Blocks (layout), teman och templates (mallsidor) Menyer och taxonomier Innehållstyper och entiteter Använda och modifiera/skapa moduler/plugins Hooks och API:er Widgets och JavaScript Integration: externa datakällor, data-export/-import Avancerad användning Översikt av andra populära och/eller lovande aktuella CMS:er Egenskaper samt likheter och skillnader i datamodeller och kodstrukturer 11 av 14
Delkurs 10 PHP fördjupning Yh-poäng: 40 Kursens mål är att den studerande lär sig avancerad PHP-programmering med relevanta tekniker, ramverk och tjänster. I kursen ska finnas möjlighet för den studerande att fördjupa sig individuellt eller i grupp inom fritt valda områden (inom ramarna för utbildningens olika moment). Säkerhetsprinciper inom PHP och MySQL Användarbunden data (Cookies, Sessions) Autentiseringstekniker Avancerade systematiska formulär Filsystem och uppladdning Enkel bildmanipulation med PHP/GD/GD2 Konfigurera domäner: Host files och DNS. Grundläggande om att konfigurera/använda Apache Regex och patterns Vad är ett API (Application Programming Interface)? Kommunikation med externa API:er Aktuella PHP-ramverk E-handel Att programmera säkert inom PHP och MySQL Att hantera användare, användardata och rättigheter/behörigheter Att skapa formulärsystem Filsystemstraversering/iterering Uppladdning av filer Bildomskalning/beskärning och formatkonvertering med GD/GD2 i PHP Att hantera domäner i host-files och DNS. Att sätta upp sajter med och konfigurera Apache samt några viktiga htaccess-tekniker (Apache runtime scripting) såsom redirects, rewrites, file/mime-types, access rights. PHP regular expressions, metoder för matching, extrahering och ersättning Att skriva API:er Att använda API:er PHP-ramverk: CakePHP och Laravel E-handel: Varukorg och kommunikation med betalväxel 12 av 14
Delkurs 11 Lärande i Arbete, LIA Yh-poäng: 75 Kursen syftar till att den studerande tar ansvar, använder sina kunskaper och färdigheter på en LIA-plats genom att självständigt eller i ett arbetslag medverka i det dagliga arbetet inom ramen av ett PHP-uppdrag. Arbetslaget Arbetsuppgiften Arbetsavslut Delkurs 12 Examensarbete Yh-poäng: 15 Kursen syftar till att den studerande integrerar de genomgångna kurserna och skapar en databasdriven sajt, i enlighet med en kunds/ beställares kravspecifikation. Examensarbetet kan med fördel göras i anslutning till LIA-perioden. Förstudie Presentation Opponering Komplettering Betygskriterier För Godkänt krävs: Ett arbete fritt från buggar och som i sin omfattning motsvarar delkursens längd. För godkänt krävs även att alla delar görs: förstudie, presentation och opponering. För Väl godkänt krävs: Utöver ovanstående: Uppvisa ett arbete innehållande fördjupningar i ämnen inom PHP-baserad webbproduktion och/eller antagande av utmaningar utifrån egna problemställningar. 13 av 14
Litteraturlista Böcker CSS3: The Missing Manual (3rd ed) David Sawyer McFarland (978-1449325947) Object-Oriented Javascript Stoyan Stefanov (978-1847194145) PHP: The Good Parts Peter MacIntyre (978-0596804374) Murach's MySQL Joel Murach (978-1890774684) Beginning jquery Jack Franklin (978-1430249320) Pro PHP programming Peter MacIntyre, Mladen Gogala, Brian Danchilla (978-1430235606) O'Reilly - Information Architecture For The World Wide Web Third Edition (aka The Polar Bear) (978-0596527341) Professional WordPress: Design and Development (2nd ed) Brad Williams (978-1118442272) Drupal 7: Börja här Johan Falk (9789144075440) (SVENSKA) eller Drupal 7: The Essentials Johan Falk (978-1463659714) (ENGELSKA) Webbsidor Git Immersion http://gitimmersion.com/ Pro Git Scott Chacon (Fritt tillgänglig bok online: http://git-scm.com/book ) Agile http://en.wikipedia.org/wiki/agile_software_development Scrum http://en.wikipedia.org/wiki/scrum_(development) Agile manifesto http://www.agilealliance.org/the-alliance/the-agile-manifesto/the-twelveprinciples-of-agile-software/ 14 av 14