Agiles Arbeiten mit Scrum, Kanban usw. bildet seit Jahren meinen beruflichen Schwerpunkt. In diesem kurzen Blogpost können Sie mehr darüber erfahren.

Die übrigen Inhalte dienen als Museum (leider ohne die frühere schicke Optik).

PHP Schulung

  • PHP Schulungen: Auch fortgeschrittene Themen wie nachhaltige Architektur, Patterns, Frameworks, Symfony, PHPUnit, Security, Performance uvm. können Teil der Agenda sein, wenn Sie Ihre PHP Schulung inhouse buchen.
  • Alle unsere PHP und Symfony Schulungen können wahlweise auf Deutsch oder auf Englisch durchgeführt werden.
  • Wir weisen darauf hin, dass alle verwendeten Markennamen der jeweiligen Firmen, Einrichtungen oder Personen dem allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen. Dies gilt insbesondere auch für die Wort- und Bildmarke „Symfony“ von Fabien Potencier.

Einführung

Grundlagen der Webentwicklung mit PHP

Themen

  • Internet und WWW Grundlagen
    • Protokolle der …
      • Applikations-Schicht
      • Transport-Schicht
      • Internet-Schicht
      • Link-Schicht
  • HTTP Grundlagen
    • Struktur von Request und Response
    • Request Methoden
    • Response Codes
  • HTTP State Management
    • Cookies (z.B. für Tracking, Sessions)
    • Sessions (z.B. für Login, Warenkorb)
    • Implementierung in PHP
  • PHP Grundlagen
    • Webserver und CLI Integration
    • Request­zyklus vs. Performance

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… verbreitete Protokolle der Applikations-, Transport-, Internet- und Link-Schicht aufzählen.

… erklären wie HTTP-Request und HTTP-Response strukturell aufgebaut sind.

… die wichtigsten Request Methoden und Response Codes und ihre Beutung aufzählen.

… Benutzer Tracking in PHP implementieren.

… Warenkorb und Login in PHP implementieren.

… den Status von Cookies und Sessions mit Hilfe von Developers Tools auslesen.

… PHP auf drei verschiedene Arten in Webserver integrieren.

… beschreiben wie sich PHP Prozesse im Request­zyklus von anderen Prozessen (Java etc.) grundlegend unterscheiden.



Software Architektur

Objekt Orientierte Programmierung (OOP)

Themen

  • Motivation
    • Warum wollen wir überhaupt objektorientiert programmieren?
    • Was kann OOP leisten und was nicht?
  • Grundlagen der Objektorientierung
    • Kennzeichen der Paradigmen: Imperativ, prozedural, objektorientiert
    • Klassen versus Objekte
    • Konstruktoren und Destruktoren
    • Eigenschaften und Methoden
  • Objektorientierung für Fortgeschrittene
    • Vererbung, Sichtbarkeit, Polymorphie
      • Vertikale Vererbung mit Extends
      • Horizontale Vererbung mit Traits
    • Interfaces und abstrakte Klassen
    • Type Hints und Type Annotations
    • Namespaces, Autoloader, PSR-0, PSR-4

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… erklären in welchen Fällen es sinnvoll ist objektorientiert zu programmieren.

… die entscheidenden Effekte der vertikalen Vererbung mit Extends und der horizontalen Vererbung mit Traits aufzählen.

… Polymorphie unter Berücksichtigung von Type Hints und Interfaces erklären.

… eigene Klassenhierarchien entwerfen.

… die Aufgaben von Interfaces und abstrakten Klassen kontrastieren.

… Interfaces und abstrakte Klassen beim Entwurf eigener Klassenhierarchien angemessen berücksichtigen.

… Klassen PSR-0 und PSR-4 konform in eigenen Namespaces implementieren.



Das Model View Controller (MVC) Design Pattern

Themen

  • In welchen Fällen ist das MVC Pattern nützlich?
  • Definition, Grundlagen und praktische Vorzüge des MVC Patterns
  • Fortgeschrittene MVC Architektur mit Front Controller und Routing
  • Aufbau eines Controllers
    • In plain PHP
    • Im Kontext eines Frameworks
  • Saubere Abgrenzung der Aufgaben jeder einzelnen Schicht (Model, View und Controller)

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… entscheiden in welchen Fällen es sinnvoll ist das MVC Pattern anzuwenden.

… den Aufbau einer MVC Architektur erklären.

… Controller in plain PHP implementieren.

… Controller Klassen zur Verwendung mit einem Framework implementieren.

… entscheiden welcher Code jeweils in welche Schicht (Model, View und Controller) gehört.



Das Service Orientierte Architektur (SOA) Pattern

Themen

  • Grundlagen, Definitionen, Vorzüge der SOA
  • Protokolle für Webservices
    • REST API
    • SOAP API
    • sonstige HTTP-APIs
  • Bibliotheken und Strategien
    • Implementierung von Webservices
    • Orchestrierung von Webservices
  • Applikationen intern mittels SOA strukturieren

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… die entscheidenden Merkmale der SOA aufzählen.

… die Vor- und Nachteile von REST, SOAP und sonstigen Webservices beschreiben.

… erklären, wie man komplexe Applikationen intern im Sinne der SOA strukturiert.

… Webservices implementieren.

… Bibliotheken und Strategien zur Orchestrierung von REST und SOAP Webservices aufzählen.



Das Dependency Injection (DI) Design Pattern

Themen

  • In welchen Fällen ist es sinnvoll das DI Pattern anzuwenden?
  • Typische Probleme durch versteckte Abhängigkeiten zwischen Klassen
  • Versteckte Abhängigkeiten zwischen Klassen erkennen und vermeiden
  • Auswirkungen von fester Kopplung und loser Kopplung zwischen Klassen
  • Feste Kopplung mit Dependency Injection lösen
  • Im Kontext eines Frameworks:
    • Model Klassen als Services bereit­stellen
    • Services per DI Pattern lose koppeln
    • Verhalten von Services per Konfiguration flexibel steuern
    • Effektive Kombination von DI Pattern und MVC Pattern

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… mögliche Schwierigkeiten durch versteckte Abhängigkeiten in Klassen erkennen.

… entscheiden für welche Klassen die Anwendung des DI Patterns sinnvoll ist.

… eigene Klassen als Services bereit­stellen.

… Services aus mehreren Klassen aufbauen.

… Abhängigkeiten von Klassen mit Hilfe des Dependency Injection Patterns erfüllen.

… Argumente für Service Klassen konfigurieren.

… eine separate Service Konfiguration für funktionale Tests nutzen.

… Services in eigenen Controllern verwenden.

… DI und das MVC Pattern effektiv kombinieren.



Templates und Internationalisierung

Twig: Die moderne und performante Template Engine

Themen

  • Warum wollen wir eine Template Engine verwenden?
  • Twig Grundlagen
    • Integration in PHP Projekte
      • mit Framework
      • ohne Framework
    • Struktur und Syntax für einfache Templates
    • Zugriff auf Daten in Arrays und Objekten
    • Filter zur variablen Ausgabe verwenden
    • Kontrollstrukturen und Schleifen
    • Blöcke und Variablen
    • Vererbung von Templates
    • Inklusion von Templates
  • Twig für Fortgeschrittene
    • URLs flexibel verwalten und adressieren
    • Twig erweitern mit Twig Makros, Extensions, PHP Klassen und Services

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… entscheiden in welchen Fällen die Verwendung einer Template Enginge sinnvoll ist.

… Twig in bestehende und neue PHP Projekte integrieren (mit und ohne Framework).

… eigene Templates zur dynamischen Generierung von HTML, XML und JSON erstellen.

… auf Daten in Arrays und Objekten zugreifen.

… Filter zur Transformation und Ausgabe verwenden.

… mit Kontrollstrukturen, Schleifen und Funktionen in Templates dynamisch agieren.

… Templates in Blöcken strukturieren und vererben.

… statische und variable Seitenfragmente in Templates inkludieren.

… ggf. die Symfony Routing Komponente integrieren und URLs flexibel verwalten.



Internationalisierung und Lokalisierung

Themen

  • Warum wollen wir eine Bibliothek für Internationalisierung (i18n) und Lokalisierung (L10n) verwenden?
  • Integration der Symfony Translation Komponente (mit und ohne Framework, ggf. mit Twig)
  • Internationalisierung (i18n)
    • Ausgabe Strings Abstrahieren
    • Translation Komponente konfigurieren
    • Locale des aktuellen Requests ermitteln
  • Lokalisierung (L10n)
    • Übersetzungen bereit­stellen
    • Platzhalter in Messages
    • Pluralisierung von Messages
  • Für Fortgeschrittene
    • Übersetzungen mit Custom Loader laden
    • Übersetzten von Constraint Messages
    • Automatisches Übersetzten von Datenbank Inhalten (z.B. für CMS)

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… die Symfony Translation Komponente integrieren (mit und ohne Framework, ggf. mit Twig).

… Ausgabe Strings von Web-Anwendungen (mit und ohne Framework) abstrahieren.

… 3 Möglichkeiten zur Ermittlung der aktuellen Request Locale nennen.

… Übersetzungen für verschiedene Locales (Sprachen) bereit­stellen.

… Platzhalter und Pluralisierung verwenden.

… eigene Custom Loader zum Laden von Übersetzungen aus beliebigen Quellen implementieren.

… automatische Übersetzung von Constraint Messages implementieren.

… automatische Übersetzung von Datenbankinhalten implementieren.



Formulare und Validierung

Formulare effizient und sicher handhaben: Grundlagen

Themen

  • Warum wollen wir Formulare mit Hilfe einer Bibliothek erzeugen und verarbeiten?
  • Integration der Symfony Formular Komponente (mit und ohne Framework)
  • Formulardaten handhaben als
    • Array
    • Objekt
    • Doctrine Entity
  • Formulare und CRUD-Controller erstellen
    • Von Hand schreiben
    • Generieren aus Klassen und Entities
  • Generierte Formulare und CRUD-Controller an eigene Anforderungen anpassen
  • Sichere Verarbeitung von Formulardaten

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… erklären welche Beträge zur Effizienz und Sicherheit eine Formular-Bibliothek leisten kann.

… die Symfony Formular-Komponente in Projekte integrieren (mit und ohne Framework).

… Formulare implementieren die Daten als Array, Objekt oder Doctrine Entity handhaben können.

… Formulare und CRUD-Controller ausgehend von Klassen oder Doctrine Entities generieren.

… Formulare und CRUD-Controller an eigene Anforderungen anpassen.

… Formulare mit Hilfe von Validierungsregeln und CSRF-Tokens vor Angriffen schützen.



Formulare effizient und sicher handhaben: Für Fortgeschrittene

Themen

  • Welche Bibliotheken helfen Formulare effizient und sicher zu handhaben?
  • Schnelles Prototyping von Formularen mit der Twig Template Engine
  • Formulare visuell gestalten
    • Formulare innerhalb von Templates individuell gestalten
    • Formularfelder durch wiederverwendbare Template Fragmente gestalten
  • Formulare dynamisch generieren, z.B. variable Auswahl von Elementen aus der Datenbank
  • Validierung von Formulareingaben mit der Symfony Validator Komponente
  • Internationalisierung von Formularen mit der Symfony Translation Komponente

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… die Symfony Komponenten Form, Validator, Twig, Translation integrieren (mit und ohne Framework)

… mit Twig schnell funktionsfähige Prototypen von Formularen erzeugen.

… Formulare innerhalb von Templates mit HTML und CSS Elementen gestalten.

… Formularfelder durch wiederverwendbare Template Fragmente mit HTML und CSS Elementen gestalten.

… Formulare dynamisch generieren, z.B. mit einer variable Auswahl von Elementen aus der Datenbank.

… Formulareingaben mit Hilfe der Symfony Validator Komponente validieren.

… Formulare und Formularfelder internationalisieren.



Validierung von Formularen und Objekten

Themen

  • Warum wollen wir eine Bibliothek für Validierungsaufgaben verwenden?
  • Integration der Symfony Validierungs-Komponente (mit und ohne Framework)
  • Validierung in den Kontexten
    • Browser
    • Backend
    • Datenbank
  • Validierung von
    • Formulareingaben
    • Daten in Objekten aller Art
  • Validierung mit Standard Constraints für
    • Strings, Zahlen, Datum und Uhrzeit
    • Collections, Dateien, Uploads
  • Eigene Constraints implementieren als
    • Callback (klein, inline)
    • Klasse / Service (wiederverwendbar)
  • Internationalisierung von Constraint Messages

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… erklären welche Beträge zur Effizienz und Sicherheit eine Validierungs-Bibliothek leisten kann.

… die Symfony Validierungs-Komponente integrieren (mit und ohne Framework).

… erklären wie man einen einzelnen Satz an Validierungsregeln zur Validierung in allen Kontexten (Browser, Backend, Datenbank) nutzen kann.

… Validierungsregeln so implementieren, dass sie für Formulareingaben und Objekte funktionieren.

… mit vorgefertigten Constraints fast alle Validierungsaufgaben lösen.

… Validierungen auf der Basis von selbst definierten Constraints implementieren (inline oder wiederverwendbar)

… Validierungsregeln gruppenweise anwenden.

… Constraint Messages internationalisieren.



Datenbanken

Datenbankzugriff mit PDO und MySQLi

Themen

  • Vergleich verschiedener Techniken für den Zugriff auf Datenbanken
    • PDO
    • MySQLi
    • Doctrine ORM
  • MySQLi
    • Syntax für Abfragen
    • Syntax für Prepared Statements
    • Übersicht: MySQLi Plugins
  • PHP Database Objects (PDO)
    • Syntax für Abfragen
    • Syntax für Prepared Statements
    • Zugriff auf verschiedene Datenbanksysteme

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… erklären welche Möglichkeiten PDO, MySQLi und Doctrine ORM jeweils bieten.

… Abfragen mit PDO / MySQLi ausführen.

… die Performance von häufig benötigen Abfragen via PDO / MySQLi verbessern.

… Datenbanken mit Hilfe von PDO / MySQLi vor SQL Injection Angriffen schützen.

… einen Überblick über verfügbare MySQLi Plugins geben.

… MySQL, postgreSQL, MSSQL, sqlLite und Oracle Datenbanken mit PDO ansprechen.



Datenbankzugriff mit Doctrine ORM: Grundlagen

Themen

  • Warum wollen wir einen Object Relational Mapper (ORM) verwenden?
  • Integration der Doctrine ORM Bibliothek in PHP Projekte (mit und ohne Framework)
  • Konfiguration für MySQL, postgreSQL, MSSQL, sqlLite und Oracle Datenbanken
  • Entities komfortabel generieren
  • Mapping Informationen als Annotations, YML oder XML hinterlegen
  • Syntax für Abfragen
  • CRUD Controller für Entities generieren

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… erklären in welchen Fällen die Verwendung eines Object Relational Mappers sinnvoll ist.

… Doctrine ORM in bestehende und neue PHP Projekte integrieren (mit und ohne Framework).

… Entities generieren und Mapping definieren.

… Abfragen ausführen.

… Controller und Formulare für alle CRUD Aktionen (Create, Read, Update, Delete) automatisch auf der Basis von Entities generieren.



Datenbankzugriff mit Doctrine ORM: Für Fortgeschrittene

Themen

  • Auf Entity Lifecycle Events reagieren mit
    • Entity Callback Funktionen
    • Event Listener Klassen, Services, Tags
  • Integration der Symfony Translation Komponente
  • Doctrine ORM hochperformant einsetzen
    • UnitOfWork
    • Flush-Strategien
    • Custom Repositories
    • Caching Mechanismen für
      • Abfragen
      • Metadaten
      • Ergebnisse
    • Lastverteilung über mehrere Server

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… auf Entity Lifecycle Events reagieren.

… Mehrsprachigkeit von Datenbankinhalten performant implementieren.

… die Funktionsweise des UnitOfWork erklären.

… verschiedene Flush Strategien implementieren.

… Custom Repositories für eigenen SQL Code und für Optimierungen erstellen und einsetzen.

… Caching von Abfragen, Metadaten und Ergebnissen implementieren.

… die wichtigsten Möglichkeiten zur Performance Optimierung nennen.



Sicherheit und Zugangskontrolle

Benutzer- und Rechtemanagement

Themen

  • Warum wollen wir für komplexe Anwendungen eine Security Bibliothek verwenden?
  • Integration der Symfony Security Komponente in PHP Projekte (mit und ohne Framework)
  • Workflows zur Authentifizierung
  • Authentifizierung gegen externe Schnittstellen
  • Single Sign On
  • Strategien zur Autorisierung
    • Rollenanforderungen via URL Schema
    • Rollenanforderungen dynamisch ermitteln
    • Access Control Lists: Differenzierung nach Objekt und Zugriffsart
    • Services und Voters für spezielle Anforderungen

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… erklären in welchen Fällen die Verwendung einer Security Bibliothek sinnvoll ist.

… die Symfony Security Komponente in PHP Projekte integrieren (mit und ohne Framework).

… Workflows zur Authentifizierung entwerfen und sicher implementieren.

… Authentifizierung gegen externe Schnittstellen umsetzen.

… Single Sign On z.B. mit z.B. mit LDAP, OAuth, REST, SOAP, Facebook, Amazon API implementieren.

… Strategien zur Autorisierung auswählen und sicher implementieren.



Sicherheit für PHP Anwendungen

Themen

  • Sicherer Umgang mit Benutzereingaben
    • In Formularen
    • Bei der Darstellung außerhalb von Formularen
    • In der Datenbank
  • Schutz vor CSRF Angriffen
  • Prepared Statements zur strukturellen Vermeidung von SQL Injection Angriffen
  • Vereinfachtes Installieren und Aktualisieren (Sicherheitsupdates!) von Bibliotheken

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… Formulare mit Hilfe von Validierungsregeln und CSRF-Tokens zuverlässig vor Angriffen schützen.

… Benutzereingaben sicher an eine Datenbank übergeben.

… Datenbanken mit Hilfe von PDO, MySQLi oder Doctrine ORM vor SQL Injection Angriffen schützen.

… Sicherheitsupdates für Bibliotheken mit minimalem Aufwand zeitnah einspielen.



Performance und Caching

Inhalte mit HTTP Caches und CDN hochperformant ausliefern

Themen

  • Statische Inhalte hochperformant ausliefern
    • CSS
    • JS
    • Bilder
    • Videos
  • Cachebare dynamische Inhalte (HTML, JSON, XML) mittels HTTP Caching noch schneller ausliefern
    • Architekturen
    • Lebenszeiten
    • Validierung
    • Invalidierung und Cache Busting
    • On-Site HTTP Caches (Varnish, Nginx, Squid)
    • Content Delivery Networks (CDN)

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… Bilder, CSS und Javascript Dateien mit einem Asset Manager verwalten..

… CSS und Javascript Dateien mittels Asset Manager filtern und kombinieren.

… erklären in welchen Fällen der Einsatz eines On-Site HTTP Caches oder Content Delivery Networks sinnvoll ist.

… gängige Architekturen für HTTP-Caches und Load Balancer beschreiben.

… mit Hilfe von Lebenszeiten, Validierung und Cache-Busting sicherstellen, dass HTTP Caches immer aktuell gültige Inhalte ausliefern.



Inhalte mit PHP hochperformant erstellen

Themen

  • HTML, JSON, XML etc. hochperformant erstellen
    • Bootstrapping
    • Classmap Classloader
    • Bytecode Caching
    • Mehrere Application­server per Load­balancer verfügbar machen
  • Datenbank Zugriffe beschleunigen
    • Prepared Statements
    • Query Cache
    • Metadata Cache
    • Results Cache
    • Mehrere Datenbank Server verwenden

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… erklären, wie sich die Erstellung dynamischer Inhalte (z.B. HTML, JSON, XML) mit PHP grundsätzlich beschleunigen lässt.

… Bytecode Caching auf allen gängigen Systemen (Linux, Windows, OSX etc.) implementieren.

… erklären wie Bootstrapping und Classmap Classloader eine Anwendung effizienter machen.

… Anfragen auf mehrere Applicationserver verteilen.

… Prepared Statements sowie Caching von Anfragen, Metadaten und Ergebnissen implementieren.

… Datenbank-Zugriffe über mehrere Server verteilen.



Automatisiertes Testen

Überblick: Automatisiertes Testen

Themen

  • In welchen Fällen ist es sinnvoll mit automatisierten Tests zu entwickeln?
  • Stabilität und Spezifität von
    • Akzeptanz­tests
    • Funktionalen Tests
    • Integrations­tests
    • Unit­tests
  • Unit­tests im Überblick
    • Definition, Eigenschaften
    • Anforderungen an die Architektur
    • Primäre und sekundäre Mehrwerte

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… Projekte mit / ohne automatisierte Tests in Bezug auf Ihre Wartbarkeit kontrastieren.

… beschreiben wie sich Akzeptanz­tests, funktionale Tests, Integrations­tests und Unit­tests hinsichtlich Ihrer Stabilität und Spezifität unterscheiden.

… erklären welche Anforderungen an die Architektur sich durch Unit­tests ergeben.

… Primäre und sekundäre Mehrwerte des Entwickelns mit Unit­tests aufzählen.



Unit­tests und Coverage Reports

Themen

  • In welchen Fällen ist es sinnvoll mit Unit­tests zu entwickeln?
  • Unit­tests
    • Definition
    • Installation und Konfiguration von PHPUnit
    • Testklassen, Testmethoden, Hilfsmethoden
    • Ergebnisse überprüfen
    • Werfen von Ausnahmen sicherstellen
  • Unit­tests für Klassen mit Abhängigkeiten
    • Anforderungen an die Architektur
    • Mock Objekte / Stubs
      • generieren / implementieren
      • mit Verhalten ausstatten
  • Code Coverage / Testabdeckung
    • Reports mit PHPUnit erstellen
    • Reports interpretieren
    • Strategien für große Testabdeckung

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… Unit­tests mit Testklassen, Testmethoden und Hilfsmethoden implementieren.

… die Ergebnisse zu testender Methoden überprüfen.

… sicherstellen das erwartete Ausnahmen geworfen werden.

… Mock Objekte wahlweise implementieren oder generieren

… Mock Objekte mit dem für den jeweiligen Test erforderlichen Verhalten ausstatten.

… Code Coverage Reports mit PHPUnit erstellen und interpretieren.

… erklären für welche Teile einer Anwendung jeweils welcher Grad von Testabdeckung angemessen ist.

… erklären wie man mit wenig Aufwand große Testabdeckung erreicht.



Funktionale Tests und Integrationstests

Themen

  • Integrationstests
    • Definition
    • Implementierung mit PHPUnit
  • Funktionales Testen von Anwendungen
    • Selenium für PHPUnit
    • Behat incl. Plugins
    • Symfony Browserkit für PHPUnit
  • Tests für Anwendungen mit Datenbank
    • Verschiedene definierte Datenbankzustände erzeugen mit Fixtures
    • Fixtures in Integrationstests und funktionale Tests integrieren

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… Integrationstests von Unit­tests und funktionalen Tests abgrenzen.

… Integrationstests mit PHPUnit implementieren.

… die Unterschiede und Gemeinsamkeiten von Selenium, Behat und dem Symfony Browserkit benennen.

… Datenbank Fixtures implementieren mit plain PHP, Doctrine DBAL oder ORM.

… Integrationstests und funktionale Tests mit Datenbank Fixtures implementieren.



Werkzeuge und Workflows

Themen

  • Überblick: Moderne Werkzeuge für Entwickler
    • Integrated Development Environment (IDE)
    • XDebug mit IDE Integration
    • PHP CLI
    • PHPUnit
    • Template Engines
    • Composer
    • Webserver
    • Vagrant / Puppet
    • GIT

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… einen Überblick über die Möglichkeiten moderner Werkzeuge für die Web-Entwicklung geben.

… PHPStorm für komplexe Projekte konfigurieren.

… konzeptuell beschreiben wie man mit Vagrant und Puppet identische lokale Serverkonfigurationen für alle Mitglieder eines Teams garantieren kann.

… Workflows für effektive Teamarbeit mit modernen Sourcecode Management Systemen benennen.



Systematische Behandlung von Ausnahmen und Fehlersuche

Themen

  • Ausnahmen systematisch behandeln
    • Ausnahmen werfen und fangen
    • Unterschiede im Umgang mit Fehlern und Ausnahmen
    • Umgang mit Ausnahmen im Kontext einer MVC Architektur
    • Klassenhierarchien für Ausnahmen
    • Polymorphie für Ausnahmen
  • Systematische Fehlersuche
    • Separate Konfiguration von Entwicklungs- und Produktivumgebung
    • Exception Controller, Debug Toolbar
    • XDebug für remote Debugging mit IDE: Konfiguration, Breakpoints, Stepping, Werte von Variablen, Diagnose mittels Code Injection

Lernziele

Die Teilnehmer können nach dieser Lerneinheit …

… den Umgang mit Fehlern und Ausnahmen kontrastieren.

… die Besonderheiten der Behandlung von Ausnahmen in einer MVC Architektur erklären.

… eigene Hierarchien von Ausnahmen entwerfen und implementieren.

… die Vorteile der Polymorphie bei der Behandlung von Ausnahmen nutzen.

… Webserver für einfache Fehlersuche konfigurieren.

… Exception Controller und Debug Toolbar in der Fehlersuche anwenden.

… XDebug mit Ihrer IDE verbinden und sehr effizient Fehler aufspüren.



Frameworks

  • Ein Framework ist eine Sammlung von generischen Komponenten in einer vorgegebenen Struktur, die Softwareentwicklung und Teamwork erleichtert.
  • Symfony ist derzeit das ausgereifteste und leistungsfähigste PHP Framework auf dem Markt. Es besteht aus Grundkomponenten, die sich auch einzeln einsetzten lassen (wie z.B. in Drupal 8).
  • Im Rahmen Ihrer PHP Schulung geben wir Ihnen ggf. gern einen Überblick über das Symfony Framework oder über die für Sie relevanten eigenständigen Symfony Komponenten.
  • Symfony kann auch der Schwerpunkt Ihrer Schulung sein: In einer Symfony Schulung lernt Ihr Team innerhalb weniger Tage das Framework produktiv einzusetzen.