Angular, AWS und Symfony Freelancer

Kategorie: PHP 7

  • DockerFile PHP mit XDebug und Amazon Linux 2

    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…

  • PHP csv Datei mit Umlauten erstellen für Excel

    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. $file = fopen(‚file.csv‘, ‚w‘); foreach ($rows as $row) { $row = array_map(function($cell){ return mb_convert_encoding($cell, ‚UTF-16LE‘, ‚UTF-8‘); }, $row);…

  • Gaufrette FTP Adapter rekursiv Verzeichnisse löschen

    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) {…

  • PHP: ftp_fget(): Entering Passive Mode (10,1,0,139,213,156).

    Die Fehlermeldung: ftp_fget(): Entering Passive Mode (10,1,0,139,213,156) 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…

  • Zertifizierung zum Zend Certified Engineer erfolgreich bestanden

    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…

  • PHPUnit returnCallback Beispiel

    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; } ) ); }

  • PHP: Parse Error: syntax error, unexpected ‚:‘, expecting ‚;‘ or ‚{‚

    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,…

  • Projekt: baby-taschenrechner.de

    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…

  • Amazon automatische Preisanpassung Tool

    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…

  • PHP How to debug Segmentation Faults

    Um Segementation Faults, die gerne in PHP7 zur Zeit auftreten zu bestimmen und zu analysieren, kann man folgender Weise vorgehen 1. Angabe des Speicherortes für die Coredumps echo ‚/tmp/coredump_%e_%p‘ > /proc/sys/kernel/core_pattern 2. aktivieren der Coredumps in PHP-FPM in der Datei: php-fpm.conf: rlimit_core = unlimited ; vorher: 0 3. PHP FPM restarten service php-fpm restart 4.…