PHP to współczesny skryptowy język programowania dedykowany głównie dla rozwiązań webowych, którego pierwsza wersja została utworzona w 1994 roku przez Rasmus Lerdorfa. Początkowo był to zestaw prostych Common Gateway Interface (CGI), umożliwiających łączenie mechanizmów generowania stron HTML z kodem zaimplementowanym w języku C. Wraz z kolejnymi wydaniami języka (PHP 3 w roku 1998, PHP 4 w roku 1999, PHP 5 w roku 2004) był on wzbogacany o kolejne konstrukcje językowe, w tym koncepty programowania obiektowego. W 2015 roku wydana została wersja 7, w której całkowicie przeprojektowano mechanizmy runtime'u, zwiększając w ten sposób znacząco wydajność aplikacji opartych o język PHP.
Na przestrzeni lat język ten został obudowany szeregiem dodatkowych rozwiązań, wspomagających i upraszczających pracę developerów. Starsze aplikacje bardzo często korzystały więc z repozytoriów PEAR oraz PECL, obecnie sięga się bardzo często po rozwiązania m.in. typu Composer i powiązane z nim repozytorium Packagist.
Swoją popularność język PHP zawdzięcza zarówno składni, upraszczającej proces poznawania języka, jak i bardzo rozbudowanemu ekosystemowi. Szacuje się, że język PHP (w różnych wersjach) jest wykorzystywany do obsługi ponad 83% znanych serwisów webowych.
Celem kursu jest nauka zarówno języka PHP jak i jego praktyczne wykorzystanie do implementacji złożonych aplikacji, w oparciu o aktualnie wykorzystywane narzędzia i rozwiązania (nowoczesne frameworki web, architektury aplikacji i systemu).
Uczestnik zajęć powinien dysponować:
- podstawową wiedzą z zakresu programowania obiektowego
- podstawową znajomością relacyjnych baz danych (przydatne w drugiej części zajęć)
Zajęcia odbywać się będą cyklicznie:
- wykład, sala 139, pt 10:15-12:00
- pracownia, sala 107, pt 08:15-10:00
- W każdym tygodniu zajęć publikowane będzie zadanie, przeznaczone do samodzielnego zaprogramowania. Za każde poprawnie zaprogramowane zadanie i oddane w terminie można będzie dostać do 10 punktów.
- Zadania publikowane będą w tygodniu poprzedzającym termin ich realizacji. Zadania należy oddawać terminowo.
- Prezentacja wykonanych zadań odbywać się będzie na pracowni. Podczas prezentacji mogą zostać zadane dodatkowe pytania dotyczące rozwiązania.
- Ocena końcowa wynikać będzie z liczby zgromadzonych w trakcie zajęć punktów:
- 50% na ocenę dostateczną
- 90% na ocenę bardzo dobrą,
- oceny pośrednie są ustalane liniowo względem określonych powyżej wartości
Terminy dodatkowych spotkań w Instytucie Informatyki, podczas których będzie można oddać zaległe rozwiązania oraz porozmawiać na tematy związane z kursem (ale nie tylko ;):
- poniedziałek 25.06, 8.30-10.30
- wtorek 26.06, 8.30-10.30
Miejsce: parter Instytutu
- Lista 1
- Lista 2
- Lista 3
- Lista 4
- Lista 5
- Lista 6
- Lista 7
- Lista 8
- Lista 9 [Termin: 25 maja]
- Lista 10
- Lista 11
- Lista 12
- Lista 13
Lista notatek z poszczególnych wykładów, wraz z linkami do dodatkowych materiałów uzupełniających
- Wykład 1, 23 luty 2018: Podstawy języka PHP, wprowadzenie do ekosystemu
- Wykład 2, 2 marzec 2018: Obiektowość, część 1
- Wykład 3, 9 marzec 2018: Obiektowość, część 2
- Wykład 4, 16 marzec 2018: HTTP Flow
- Wykład 5, 23 marzec 2018: Templates
- Wykład 6, 6 kwiecień 2018: Testy jednostkowe, TDD
- Wykład 7, 13 kwiecień 2018: Modelowanie domeny, podejście zdarzeniowe
- Wykład 8, 20 kwiecień 2018: Modelowanie domeny, Event Storming
- Wykład 9, 27 kwiecień 2018: Modelowanie, integracja
- Wykład 10, 18 maj 2018: Bazy danych, część 1
- Wykład 11, 25 maj 2018: Bazy danych, część 2
- Wykład 12, 1 czerwiec 2018: Wydajność i skalowalność
- Wykład 13, 8 czerwiec 2018: Deployment aplikacji
- Wykład 14/15, 15 czerwiec 2018: Monitoring aplikacji
- Dokumentacja języka, http://php.net/manual/en/
- PHP The Right Way, http://www.phptherightway.com/