Mit dem kostenlosen online Tool auf www.puphpet.com kann man ganz einfach Entwicklungsumgebungen in vagrant erstellen mit gewümnschten Kompoennenten wie MySQL, Elasticsearch, RabbitMQ, Redis und allem was man braucht. Es werden CentOS und Ubuntu unterstützt.
Der neue Klassiker von Uncle Bob beschäftigt sich mit Software Architektur: Was ist eine gute Softeware Arcjtektur und wozu braucht man Sie überhaupt.
Die wichtigsten Aussagen habe ich zusammengefasst im folgenden:
Wozu benötugt man eine gute Architektur? Es ist einfach ein Programm zu schreiben, das etwas bestimmtes tut, selbst Schulkinder schreiben Programme. Aber schwierig ist es ein Programm zu schreiben, was auch in Zukunft erweiterbar und felxibel ist, ohne große Kosten und Aufwand zu verursachen. Deswegen bracht es von Anfang an gute Architektur.
Die Evolution der Programmiersprachen besteht darin, dem Programmierer weniger Möglichkeiten zu geben, schlechten Code zu schreiben.
Man sollte nicht in die Falle tappen: Wir programmieren schnell das Projekt zu Ende um schnell am Markt zu sein und später räumen wir den Code auf. Das wird nie passieren.
Das User Interface (UI), die Datenbank und die Business Rules sollten unabhängig von einander über Interfaces mit einander verbunden und austauschbar sein (Plugin Architektur). Dies ermöglicht ein
- unabhängiges Deployment der 3 Komponenten und
- unabhängige Entwicklung in verschiedenen Teams
Funktionale Programmierung löst das Problem von Deadlocks und Multi-Threading Problematiken, da keine richtigen Variablen vorhanden sind.
Am 1. März habe ich die Prüfung erfolgreich abgelegt für die ich die letzten Monate gelernt habe. Wie zu erwarten war, waren die Fragen sehr, sehr kniffelig, aber die Vorbereitung hat sich bezahlt gemacht.
Vorbereitung
Ich kann jedem empfehlen sich vorher merhmals das Buch PHP7 Zend Certification Study Guide durchzulesen:
Außerdem sollte man alle Tests auf der Seite zendexam.com zu 80% erfolgreich beantworten können, dann ist man bereit für die Prüfung.
Anmeldung für die Prüfung
Man kann sich auf der zend.com Seite anmelden für die Prüfung , die man dann in der Nähe in einem Testcenter seiner Wahl absolvieren kann unter strengsten Bedingungen.
Einmal im Jahr gibt es einen Gutschein für die Prüfung auf retailmenot.com, wenn man Glück hat.
Ich stimme Ihm in allem zu, was Oncle Bob zu sagen hat:
Über Architektur:
Über Programmierer und IT im Allgemeinem:
Mit dem PHPUnit returnCallback() Methode kann man dynamisch den Rückgabewert eines Mocks definieren.
Beispiel:
public function testCallback()
{
$globalObject = [];
$this->mock
->expects($this->any())
->method('method')
->will(
$this->returnCallback(
function($param) use ($globalObject) {
return globalObject;
}
)
);
}
Bei der sehr kryptischen Fehlermeldung in Travis CI:
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
handlet es sich um ein Problem mit falschen Einrückungen im travis.yml File:
matrix:
include:
- php: 5.6
env:
- SYMFONY_VERSION='3.4.*'
Ein Leerzeichen zu wenig in der Zeile – SYMFONY_VERSION=’3.4.*‘ und es kommt zu diesem wenig aufschlussreichen Fehler.
Bei der sehr kryptischen Fehlermeldung
Parse Error: syntax error, unexpected ':', expecting ';' or '{'
handelt es sich in den meisten Fällen um eine PHP7 Inkompatibilität.
Der auszuführende Code enthält ein Sprach-Feature, was erst unter PHP7 verfügbar ist:
Return Type Definitions (Definition des Rückgabewertes). Beispiel:
function myFuntion($input): array
{
return ['foo'];
}
Damit kann man festelegen, dass die Funktion ein Array zurückgeben muss, sonst wird ein TypeErrror ausgelöst.
Um den Code in einer niedrigeren PHP Version zum Laufen zu bringen, muss man die Return Type Definition entfernen:
function myFuntion($input)
{
return ['foo'];
}
Spezialfall: composer
Um irgendeine Datei in einem beliebigen Verzeichnis zu finden, kann man den find-Befehl verwenden:
sudo find / -name 'datei.php'
Diese Präsentation habe ich im Rahmen meiner Arbeit bei Air Berlin zum Thema Unit und Integration Testing gehalten.
Da es Air Berlin nun nicht mehr gibt, stelle ich gern diese Informationen allen zur Verfügung.
Um die Ldap PHP Extension zu installieren, kann man unter Linux / Ubuntu einfach den Befehl:
sudo apt-get install php-ldap

