2. Miről is leszitt ma szó?Magic Method-okInterface-kKivételkezelésStandard PHP LibraryTervezésimintákMűveletek objektumokkalReflection APIEgységtesztelés
3. Magic Method-okSpeciális helyzetekben, automatikusan hívódó metódusokHasonlóak az EJB életciklus metódusokhoz, de itt nincs annotációA __ névtér van fenntartva számukra
4. MM ÉletciklusmetódusokObjektumok élete során hívódnak meg automatikusan__constructOsztály példányosításakor hívódik meg. __destructA GC hívja megNem lehetünk biztosak benne
7. MM SerializálásEzek különböző hook-ok, melyeket a serializálás hív meg, amennyiben léteznek__sleepHasonlóan a Java „transitive” módosítójához: megszűri az attribútumokat, és lezárja a kapcsolatokat__wakeupDb kapcsolatok, stb. visszaállítása, amik elvesznek a mentés során__set_stateOsztály var_export-jakor hívódik meg, a kimenetét alakítja át
8. MM MetódushívásokNem létező metódusok hívásakor lefutó magicmethod-ok__callNem létező tagmetódus esetén__callStaticNem létező statikus metódus esetén__invokeFüggvényként hívódó osztály esetén
9. MM Ésatöbbi__autoloadNem betöltött osztály esetén hívódik__cloneKlónozásnál hívódik meg, segít az újonnan létrejött osztály paraméterezésében__toStringHa egy objektumot string-ként próbálunk kezelni, itt állíthatunk össze string (!) kimenetet
14. Származtatott kivételekAz Exception osztály leszármaztathatóA catch blokk „IS A” vizsgálatot végez, és csak az első igaz feltételbe megy bele
15. Továbbdelegált kivételekA kivételt nem kötelező az adott blokkban lekezelni (vagy egyáltalán lekezelni)Ha nincs elkapva, a hívási fán felfele delegálódik
16. Standard PHP LibraryInterface-k és osztályok gyűjteményeStandard megoldásokNincs szükség külső extension-raJava SDK-hoz hasonlóan
21. SPL AutoloadDinamikus osztálybetöltő mechanizmusAz SPL biztosít hozzá felületet, amelyen keresztül befolyásolhatóFunkciók:spl_autoload_callspl_autoload_extensionsspl_autoload_functionsspl_autoload_registerspl_autoload_unregisterspl_autoload
31. Műveletek objektumokkal: MásolásÚj referencialétrehozásaKlónozásShallowcopy (default): az attribútum objektum-mutatója másolódik le: ugyan arra az objektumra mutat, mint az eredetiDeep copy: az attribútum objektum állapota másolódik le
33. Reflection APIOsztályok és függvények gyűjteményeNincs szükség külső extension-raAz OOP szabályainál nagyobb hozzáférést nyújtanak a rendszer részeihezReverse-engineering-hez kiváló
34. Reflection API részeiReflectionClass: az osztályokrólReflectionFunction: a funkciókrólReflectionMethod: az osztálymetódusokrólReflectionObject: az objektumokrólReflectionParameter: hívási paraméterrőlReflectionProperty: az attribútumokról…
36. EgységtesztelésA komplex munka minden esetben hibával járA hibák számát és hatását minimalizálni kellVállalati standard: 15-50 defektus / KLOCEnnek költséghatékonynak kell lennie
37. EgységtesztelésHa a részek jók, akkor a részek egésze is lehet jóAz egységbezárás lehetőséget ad arra, hogy a részeket teszteljükEszköz: egységtesztelés