PHPExpert:Optimisationetindustrialisationd'applications
Wat zijn de doelstellingen van de opleiding?
Opleidingsprogramma
Herinnering: geschiedenis van PHP
Nieuwe functies van PHP7, PHPNG en HHVM
Architectuurprincipes
Protocol centric: presentatie van PSR7, ReST en HATEOAS
MVC, ontkoppeling van het domein en de applicatie
Meer ontkoppeling: Interface based programming
Nog meer ontkoppeling: microservices
Dependency injection
Kaders
Full-stack MVC-raamwerken: presentatie van Symfony en Zend
Een klassiek onderdeel van het ORM:
Lichtgewicht raamwerken: voorbeeld van Silex
Samenwerkingsparadigma en het elimineren van raamwerken
Logboekbeheer
Herinneringen: native PHP logs
PSR-3: Logger-interface
Een implementatie: Monolog
Processors (introspectie, geheugengebruik, ...)
Formatters (html, ChromePHP, ...)
Wrappers (Buffer, Filter, FingersCrossed, ...)
Workshop: Een logger toevoegen aan onze applicatie
Ontwikkelingsomgevingen
Lokale AMP-omgeving
De ingebouwde HTTP-server van PHP5
Virtualisatie, implementaties beheren met vagrant
Virtualisatie, afhankelijkheden moduleren met Docker
Workshop: Een ontwikkelserver launcher maken
Monitoring en profilering
Toezicht: wat moet er worden gecontroleerd?
Presentatie van een tool zoals Monit
Profiling: xDebug, Xhprof en Xhgui
Profiling in een framework: Symfony WebProfilerBundle
Profiling via een externe service: Blackfire
Load testing met Apache Bench
Workshop: Profilering van onze toepassing
Ontwikkelingsinstrumenten
Versiebeheersysteem (VCS): SVN, Git
Branchebeheer
Documentatie: PHPDoc
Geïntegreerde ontwikkelomgeving (IDE)
Configuratiebestand, Yaml, XML, json-formaten
Configuratielader
De bron inspecteren: PHPStorm inspector, Sensio Insight
Optimaliseren van het schrijven van code
Code conventies: PSR-1, PSR-2
SOLID ontwikkelingsprincipes
Conventies controleren: phpcpd, php-cs-fixer ...
Optimalisering van de uitvoering
Optimaliseringstools / codekwaliteit
Veelvoorkomende fouten, oplossingen
On-the-fly compressie
Optimalisering van algoritmen
Optimalisering van de gegevenstoegangslaag: memcached
HTTP-cache, cache-control directives
HTTP-cache op een reverse-proxy, presentatie van tools
Workshop: Meerdere codeoptimalisatiescenario's