# Ressourcen

Aktuellste Version dieses Dokuments und der gezeigten Code-Beispiele  
https://github.com/janunger/rheinwerk-video-training



## Kapitel 1 - Entwicklerwerkzeuge für PHP einrichten

### Lektion 1.6 - Einen lokalen Webserver für Windows einrichten

XAMPP  
https://www.apachefriends.org/de/

### Lektion 1.7 - Einen lokalen Webserver für Mac-Systeme einrichten

MAMP  
https://www.mamp.info/de/

### Lektion 1.8 - Die Entwicklungsumgebung PhpStorm installieren

PhpStorm  
https://www.jetbrains.com/phpstorm/

Web Developer für Google Chrome  
https://chrome.google.com/webstore/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm



## Kapitel 2 - Grundlagen der PHP-Programmierung

### Lektion 2.7 und 2.8 - Kontrollstrukturen, Verzweigungen, Schleifen

Vergleichs-Operatoren  
http://php.net/manual/de/language.operators.comparison.php

Kontrollstrukturen  
http://php.net/manual/de/language.control-structures.php

### Lektion 2.9 - Mit Zahlen rechnen

BCMath Rechnen mit beliebiger Genauigkeit  
http://php.net/manual/de/book.bc.php

### Lektion 2.12 - Vordefinierte Variablen: $_GET und $_POST

Superglobals  
http://php.net/manual/de/language.variables.superglobals.php



## Kapitel 3 - PHP-Programme schreiben

### Lektion 3.3 - PHP-Funktionen verwenden

Funktionsreferenz  
http://php.net/manual/de/funcref.php

Zeichenketten  
http://php.net/manual/de/book.strings.php

Ortszeit/Datum formatieren  
http://php.net/manual/de/function.date.php

Mathematische Funktionen  
http://php.net/manual/de/ref.math.php

### Lektion 3.4 - Fehlersuche und Debugging

var_dump  
http://php.net/manual/de/function.var-dump.php

Xdebug  
https://xdebug.org/

Xdebug helper für Google Chrome  
https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc



## Kapitel 4 - Objektorientierte Programmierung mit PHP

### Lektion 4.2 - Klassen und Objekte

"Objektorientierte Programmierung" von Bernhard Lahres, Gregor Rayman  
http://openbook.rheinwerk-verlag.de/oop/

"Clean Code - Refactoring, Patterns, Testen und Techniken für sauberen Code: Deutsche Ausgabe" von Robert C. Martin  
https://www.amazon.de/dp/3826655486/

### Lektion 4.4 - Vordefinierte PHP-Klassen nutzen

Zeitzonen  
http://www.zeitzonen.de/

Unixzeit  
https://de.wikipedia.org/wiki/Unixzeit

### Lektion 4.5 - Den PHP-Code gliedern per Auto-Loading

Anonyme Funktionen  
http://php.net/manual/de/functions.anonymous.php

### Lektion 4.9 - Entwurfsmuster anwenden

Entwurfsmuster  
https://de.wikipedia.org/wiki/Entwurfsmuster

"Design Patterns. Elements of Reusable Object-Oriented Software" von Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides  
https://de.wikipedia.org/wiki/Entwurfsmuster_(Buch)

"PHP Design Patterns" von Stephan Schmidt  
https://www.amazon.de/PHP-Design-Patterns-Stephan-Schmidt/dp/389721864X



## Kapitel 5 - Webtechniken und Datenaustausch

### Lektion 5.7 - Daten in Dateien schreiben

fopen  
http://php.net/manual/de/function.fopen.php

### Lektion 5.8 - Daten aus Dateien herauslesen

fread  
http://php.net/manual/de/function.fread.php

fgetcsv  
http://php.net/manual/de/function.fgetcsv.php

### Lektion 5.9 - JSON: Asynchrone JavaScript Requests

jQuery UI Autocomplete - Remote datasource  
https://jqueryui.com/autocomplete/#remote

JSON  
https://de.wikipedia.org/wiki/JavaScript_Object_Notation

### Lektion 5.10 - Bilder und Grafiken mit PHP bearbeiten

Bildbearbeitung und GD  
http://php.net/manual/de/book.image.php

### Lektion 5.11 - PDF-Dokumente erstellen 

FPDF  
http://www.fpdf.org/



## Kapitel 6 - Datenbanken verwalten mit MySQL & Co.

### Lektion 6.3 - Eine Datenbank verwalten mit phpMyAdmin

Datentypen in MySQL  
http://dev.mysql.com/doc/refman/5.7/en/data-types.html

### Lektion 6.9 - Weitere Datenbanksysteme im Überblick

MariaDB  
https://de.wikipedia.org/wiki/MariaDB

SQLite  
https://de.wikipedia.org/wiki/SQLite

PostgreSQL  
https://de.wikipedia.org/wiki/PostgreSQL

SQLite, MySQL und PostgreSQL im Vergleich  
https://www.digitalocean.com/community/tutorials/sqlite-vs-mysql-vs-postgresql-a-comparison-of-relational-database-management-systems

Microsoft SQL Server  
https://de.wikipedia.org/wiki/Microsoft_SQL_Server

Oracle Database  
https://de.wikipedia.org/wiki/Oracle_(Datenbanksystem)

MongoDB  
https://de.wikipedia.org/wiki/MongoDB

Neo4j  
https://de.wikipedia.org/wiki/Neo4j



## Kapitel 7 - Webanwendungen mit PHP erweitern

### Lektion 7.2 - Content Management Systeme im Überblick

Content Management System  
https://de.wikipedia.org/wiki/Content-Management-System

WordPress  
https://de.wordpress.org/

WordPress Themes  
https://de.wordpress.org/themes

WordPress als Software-as-a-Service  
https://de.wordpress.com/

Joomla  
https://www.joomla.de/

Drupal  
https://www.drupal.org/

Typo3  
https://typo3.org/

### Lektion 7.3 - E-Commerce und Shopsysteme

WooCommerce  
https://woocommerce.com/  
https://de.wordpress.org/plugins/woocommerce/

Magento  
https://magento.com/

Shopware  
https://de.shopware.com/

### Lektion 7.4 - WordPress installieren

WordPress herunterladen  
https://de.wordpress.org/txt-download/

### Lektion 7.5 - Ein eigenes WordPress-Plugin entwickeln

Ein Plugin schreiben  
https://codex.wordpress.org/Writing_a_Plugin

Plugin API  
https://codex.wordpress.org/Plugin_API



## Kapitel 8 - Sichere Webanwendungen mit PHP

### Lektion 8.2 - Sicherheit von Webanwendungen verbessern

OWASP (Open Web Application Security Project)  
https://www.owasp.org/

OWASP Top 10  
https://www.owasp.org/images/4/42/OWASP_Top_10_2013_DE_Version_1_0.pdf

Die Grundlagen der Web-Anwendungs-Sicherheit  
http://martinfowler.com/articles/web-security-basics.html

### Lektion 8.5 - Passwörter richtig verschlüsseln

Password Hashing Funktionen  
http://php.net/manual/de/ref.password.php

bcrypt  
https://de.wikipedia.org/wiki/Bcrypt

### Lektion 8.6 - Kleines Einmaleins der sicheren Webanwendung

htmlspecialchars  
http://php.net/manual/de/function.htmlspecialchars.php

filter_var  
http://php.net/manual/de/function.filter-var.php  
http://php.net/manual/de/filter.filters.php



## Kapitel 9 - Webanwendungen verwalten

### Lektion 9.2 - Ein FTP-Programm einrichten

Hosting-Anbieter  
https://www.hosteurope.de/  
https://hosting.1und1.de/webhosting?linkId=hd.subnav.webhosting  
https://www.strato.de/  
https://uberspace.de/

FTP-Programm Cyberduck  
https://cyberduck.io/

### Lektion 9.5 - Die Konfigurationsmöglichkeiten der php.ini nutzen

Die Konfigurationsdatei php.ini  
http://php.net/manual/de/configuration.file.php

Liste der php.ini-Direktiven  
http://php.net/manual/de/ini.list.php



## Kapitel 10 - Fortgeschrittene Techniken

### Lektion 10.2 - PHP-Bibliotheken nutzen mit Composer und Packagist

Composer  
https://getcomposer.org/

Packagist  
https://packagist.org/

### Lektion 10.3 - PHP-Frameworks: Symfony, Zend Framework und andere

Symfony  
http://symfony.com/

Zend Framework  
https://framework.zend.com/

Laravel  
https://laravel.com/

Silex  
http://silex.sensiolabs.org/

Slim  
http://www.slimframework.com/

### Lektion 10.5 - Automatisierte Tests mit PHPUnit

Testautomatisierung  
https://de.wikipedia.org/wiki/Testautomatisierung

PHPUnit  
https://phpunit.de/

"Growing Object-Oriented Software Guided by Tests" von Steve Freeman und Nat Pryce  
http://www.growing-object-oriented-software.com/