Abstrakt prezentacji:
Programowanie obiektowe możemy postrzegać jako dwuwymiarową przestrzeń klas, obiektów i występujących pomiędzy nimi interakcji w postaci np. wywołań metod. Na przestrzeni lat powstało także wiele metod i rozwiązań pomagających zapanować nad tworzącą się w ten sposób skomplikowaną siecią, warto by tu wspomnieć choćby enkapsulację, wzorce GoF czy GRASP. Niemal zawsze pojawiają się jednak zagadnienia przecinające przestrzeń ortogonalnie, bez związku z konkretną funkcjonalnością. Przeplot logiki aplikacyjnej z dodatkowym kodem realizującym zadania poboczne (tzw. warkocz) utrudnia jego analizowanie czy debugowanie. Trudno chyba sobie jednak wyobrazić aplikację bez systemu logowania zdarzeń, czy pomiaru czasów wykonania poszczególnych fragmentów kodu w trybie debug.
Z pomocą w implementacji logiki ortogonalnej przychodzi paradygmat programowania aspektowego, opracowany przez Gregora Kiczalesa w laboratoriach Xerox PARC. Za jego pomocą można niejako stworzyć trzeci wymiar, w którym umieszczana i implementowana jest logika ortogonalna, którą na dodatek można natychmiastowo włączać/wyłączać w całym kodzie źródłowym, bez potrzeby jego modyfikacji! Największe sukcesy paradygmatu AOP są związane z językiem Java (i kompilatorem AspecjJ), to jednak istnieje szereg rozwiązań dla PHP, dzięki którym nasz kod może stać się jeszcze bardziej modularny czy też “re-używalny”.
W trakcie sesji zapoznamy się z terminologią wykorzystywaną w AOP, zasadę tworzenia i wykorzystywania aspektów oraz możliwe do zastosowania biblioteki i frameworki PHP.