Ein DockerFile für eine PHP 7.2. Umgebung mit XDebug für eine Symfony 4 Umgebung unter Amazon Linux 2:
FROM amazonlinux:2.0.20190823.1
RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# install php
RUN amazon-linux-extras install -y php7.2
RUN yum install -y php-devel.x86_64 php-xml.x86_64 php-pecl-zip.x86_64 php-intl.x86_64
#install xdebug
RUN yum install -y gcc make
RUN yum install -y php-pear.noarch
RUN pecl install xdebug
RUN echo 'zend_extension=/usr/lib64/php/modules/xdebug.so' >> /etc/php.ini
Um eine csv-Datei zu erstellen, in der die Umlaute richtig kodiert sind, muss man in seinem Projekt, welches im Normalfall UTF-8 kodiert ist, die Umlaute nach UTF-16LE kodieren. Diese Kodierung kann von Windows und Mac angezeigt werden.
Um mit dem FTP Adapter von Gaufrette rekursiv Dateien und Unterverzeichnisse zu löschen kann man folgenden Trick anwenden um nicht in die Fehlermeldung zu geraten:
ftp_rmdir(): Directory not empty.
1. erst alle Dateien löschen
2. dann die tiefsten Verzeichnisse bis hin zu den obersten löschen:
/**
* @param Filesystem $fileSystem
*/
function deleteAllFilesInDirectory(Filesystem $fileSystem)
{
// delete files first, than directories
foreach ($fileSystem->keys() as $key) {
if (!$fileSystem->isDirectory($key)) {
$fileSystem->delete($key);
}
}
$keys = $fileSystem->keys();
usort($keys, function (string $a, string $b){
$aCount = substr_count($a, '/');
$bCount = substr_count($b, '/');
return $bCount <=> $aCount;
});
foreach ($keys as $key) {
$fileSystem->delete($key);
}
}
bedeutet, dass der FTP Client eine neue passive Verbindung auf der IP 10.1.0.139 auf Port 213 * 256 + 156 = Port 54684 aufmachen soll.
Am einfachsten händelt man diese Situation, wenn man sich neu verbindet mit ftp_connect() und es nochmal versucht und eine passive Verbindung aufbaut mit ftp_pasv();
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.
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.
Das gerade fertiggestellt Projekt baby-taschenrechner.de beschäftigt sich mit den Fragestellungen rund um die Entwicklung des eigenen Kindes:
Wie groß wird mein Kind werden in x-Jahren
Wie schwer wird mein Kind in x-Jahren
Ist mein Kind zu schwer/zu dünn
Welche Kleidergröße wird es wann tragen?
Die Webseite soll Eltern dabei helfen herauszufinden, wann sie welche Kleidergröße kaufen müssen, um im nahenden Winter/Sommer das passende zu Hause zu haben.
Eltern können so einschätzne, ob das Kind zu dünn oder zu dick ist für ihr Alter/Größe/Gewicht-Verhältnis.
Für die Realiserung wurden folgende Technologien verwendet:
Symfony 3, Docker, MySQL, PHP, GIT, Google Material Design, Amazon AWS
Für einen Kunden habe ich gerade ein Tool entwickelt, mit dem man die Preise der eigenen Waren bei Amazon automatisch anpassen kann.Dabei werden die Angote der Konkurrenz analysiert nach Zustand der Ware und nach Seller Seriösität und dadurch ein fairer Preis bestimmt für die Ware. Es werden alle Daten, die über die API verfügbar sind für die Preisbestimmung mit herangezogen, wie z.B. Seller Feedback (Bewertungen des Händlers), ob Amazon selber verschickt, Versanddauer und vieles mehr.
Das Tool vergleicht optional die Preise zwischen den verschiedenen Amazon Plattformen in Europa (DE, UK, IT, ES, FR) aber auch Plattformen außerhalb Europas, wie Japan oder Amerika und händelt die unterschiedlichen Währungen.
Das Ergebnis kann direkt zu Amazon mittels der API geschickt werden und die Preise werden sofort geupdatet.
Die Anwendung ist in PHP mit Symfony 3 geschrieben und hat ein Frontend mit Twitter Bootstrap 3 und eine MySQL Datenbank. Außerdem gibt es eine Vagrant Umgebung für die Entwicklung mit PHP7.1 und nginx. Ausgeführt werden kann das ganze mit einer einfachen Xampp Umgebung oder Vagrant Virtual Box beim Kunden lokal auf einem PC.
Falls sie auch Interesse an einem solchen Tool haben, könnne sie gern Kontakt aufnehmen.