uio--WebPageHeader-Module
uio--HeaderCarousel-Module
uio--WebPageMain-Module
Ohne PHP geht im Web nur wenig. Man geht davon aus, dass über 60% aller Webseiten weltweit mit einem auf der Programmiersprache PHP basierenden Redaktionssystem CMS basieren. Über bekannte Open-Source-CMS wie TYPO3 CMS, WordPress CMS, Contao und andere Redaktionssysteme hinaus sollte man aber nie vergessen, dass PHP auch für eine Vielzahl, individueller webbasierter Softwarelösungen in Unternehmen weltweit im Einsatz ist.

1: PHP | Overview

PHP im Überblick

PHP gilt allgemein als eher einfache Programmiersprache. Genau genommen ist diese Formulierung aber falsch: PHP kann mindestens so komplex sein wie JAVA, C# und C++ auch. Der Einsteiger aber merkt es nicht sofort weil Entwickler in PHP verschiedene Stilrichtungen pflegen. Viele glauben, dass man sich die Basics schnell selbst anlesen kann. Das ist auch nicht zwingend falsch, aber man vergisst hierbei, dass man hierbei den Einstieg in wirkliches PHP für Entwickler im Grunde genommen gar nicht gelernt hat.



$dateCreated = (new \DateTime())->setTimezone(new \DateTimeZone($timezone))->format(\DateTime::ATOM); // [1]

PHP verändert sich stetig

Merken Sie sich eines gleich von Beginn an:

Die Programmiersprache PHP verändert sich seit 20 Jahren ständig und stetig. Viele Kritikpunkte von JAVA- und C#- oder C++ Entwicklern an PHP waren durchaus begründet. PHP erlaubt immer einen schnellen Einstieg, und diesen Zeitvorteil verliert man aber in der laufenden Entwicklung weil altes PHP bzw. PHP-Grundlagen nicht für wachsende Projekte ausgelegt war.

Wenn wir bei SNEWMEDIA von "PHP Grundlagen" sprechen dann geht es im Kern darum, dass unsere Kunden PHP verstehen lernen und nicht nur in der Lage sind, irgendwelche Variablen anzulegen und in HTML auszugeben.

Automatische Typkonvertierung

Wer von JAVA, C# oder auch TypeScript kommt kann bei PHP an der automatisierten Typkonvertierung verzweifeln. Diese automatisierte Typkonvertierung von PHP ist eine der größten Fehlerquellen in Programmcode und zudem darüber hinaus immer wieder nur schwer zu lokalisieren.



// Einsteiger früher
$zahl = 1; $text = "1";
$ergebnis_1 = $zahl + $text;
$ergebnis_2 = $zahl . $text;

Erfahrene PHP Entwickler befassen sich immer wieder mit nachträglichen Typenprüfungen im Quellcode, um sicherstellen zu können, dass bestimmte Werte tatsächlich bestimmte Typen haben. Es versteht sich von selbst, dass Einsteiger, die nie ernsthaft darüber nachgedacht haben, an so etwas nicht denken.

Das ist immer wieder ein Aspekt der die Zusammenarbeit bei PHP unter Entwicklern erschwert.

Optionale Typisierung

Ab PHP 8.x ist es in PHP im Zusammenhang mit objektorienter Programmierung längst möglich, auch in PHP Eigenschaften und Methoden in Klassen konsequent zu typisieren. PHP übernimmt hierbei nicht nur eine Typenprüfung zur Laufzeit: Auch Entwicklungsumgebungen sind an diesem Punkt in der Lage, die Datentypen sowie auch die zugehörigen Codehints zu liefern.



// Einsteiger heute
class Berechnung {
 public int $zahl = 1;
 public string $text = 1;
 public string ergebnis_1;  
 public int ergebnis_2; 
 
 public rechnen_int():int {
  $this->ergebnis_1 = 
   $this->zahl + (int) $this->text;
  return $this->ergebnis_1;
 }
 
 public verketten_text():string {
  $this->ergebnis_2 = 
   (string) $this->zahl . $this->text;
  return $this->ergebnis_2;
 }
}

$e_1 = (new Berechnung())
       ->rechnen_int();
$e_2 = (new Berechnung())
       ->verketten_text();

Namespaces und PSR-4

Es gibt schon lange den PSR-4 Standard in PHP mit Namespaces. Das Problem ist nur: Einsteiger lernen es nicht. Unternehmen kennen es kaum.

Man muss einfach eines auch bei PHP verstehen lernen: Die Zeiten, in denen PHP nur für kleine Homepages eingesetzt wurde, sind seit Jahrzehnten vorbei. Überall, wo Software komplexer wird und im gerade im Open-Source-Bereich viele Module anderer Entwickler eingesetzt werden, ist es unvermeidbar, dass andere Entwickler den Klassen die gleichen Klassennamen geben.

Der PSR-4 Standard gibt bereits seit Langem vor, wie man Namespaces und Klassen benennt und auch wie man die zugehörigen Ordner und Dateien im Dateisystem benennt.



// Früher
$stern = new Stern(); // alt

// Heute
$stern = new \muster\Stern(); 
$stern = new \astronomie\Stern(); 
$stern = new \bewertungen\Stern(); 

2: PHP | Kurse in der Übersicht

PHP Kurse in der Übersicht

Wir hatten ursprünglich in Anlehnung an andere IT-Seminar-Betreiber zwei PHP Kurse: Einen Grundkurs mit 3 Tagen und einem Aufbaukurs mit 2 Tagen. Der Grundkurs beinhaltet normalerweise das Arbeiten mit HTML-Formularen und serverseitiger Verarbeitung mit PHP. Der Aufbaukurs beinhaltete üblicherweise eine Kurzeinführung in PHP und Objektorientierung PHP/OOP sowie die Datenbankanbindung PHP+MySQL oder PHP+MariaDB.

Seit 2020 haben wir diese üblichen zwei Kurse zu einem Grundkurs PHP Developer A101 zusammengefasst weil eine Trennung einfach keinen Sinn mehr machte. Viele Unternehmen glaubten, dass man nur die ersten 3 Tage bräuchte, weil man sich den Rest selbst anlesen kann. Das ist bereits seit Jahren oder Jahrzehnten ein Irrtum.

OOP und PSR-4 sind wichtig

Objektorientierung und PSR-4 Standard sind wichtig und sollte einmal richtig verstanden werden. Alle ernstzunehmenden Neuentwicklungen sowie auch viele Open-Source-Projekte setzen auf diese Standards.

PHP und Datenbanken

Oft auch vergessen: Es gibt mittlerweise 3 typische Varianten wie man PHP an Datenbanken anbindet. Es geht nicht immer darum, dass man alle 3 Varianten von Beginn an beherrscht, sondern es geht bei Grundlagen darum, dass man versteht, welche Variante man mit welchen Stärken und Schwächen gerade einsetzt oder einsetzen will.

Closures und Funktionale Programmierung

PHP kann längst ähnliche wie JavaScript und andere Sprachen auch Funktionale Programmierung und kennt auch inzwischen zwei Syntax-Varianten für Closures und Lambdas.

SNEWMEDIA

PHP Developer A101

Der PHP Developer A101 von SNEWMEDIA.

SNEWMEDIA hat den bisherigen 3-tätigen Grundkurs und den 2-tätigen Aufbaukurs seit 2020 zu einer wahlweise 3- bis 5-tätigen Einführung unter der Bezeichnung PHP-A101-Developer zusammengeführt.

PHP | PHP Developer A101
SNEWMEDIA

PHP Developer A201

Der PHP Developer A201 von SNEWMEDIA.

Der SNEWMEDIA PHP-Developer-A201 Part als Aufbau für die Grundlagen aus PHP-Developer-A101 ist in Planung. Im Kern geht es um die Problemstellung, dass über PHP+SQL hinaus auch PHP+XML und PHP+JSON ebenso ein zentraler Aspekt von Grundlagen sind. PHP dient nun einmal mit oder ohne REST-konformerer Webservices dazu, auch über JavaScript/AJAX bzw. fetch-Techniken Daten zwischen Browser-Client und Server auszutauschen.

Unser Problem bei der Strukturierung von Kursen bei PHP liegt auf der Hand: Das Verständnis von "Grundwissen" und was bei PHP dazugehört variiert von Auftraggeber zu Auftraggeber und Entwickler zu Entwickler.

In Planung
SO IST'S BESSER.

LERNEN MIT SNEWMEDIA. Wähle ein Thema.

Schick uns den Link auf Dein Wunschthema und wir bieten Dir einen Termin an!

uio--WebPageFooter-Module