Angular, AWS und Symfony Freelancer

Kategorie: PHP

  • Monolog Logging für AWS Cloudwatch Logs konfigurieren

    Damit die Logs schön formatiert aus einer Symfony 4 Anwendung in AWS Cloudwatch ankommen, muss man Monolog folgendermaßen konfigurieren: # config/services.yaml Monolog\Formatter\JsonFormatter: calls: – [includeStacktraces] und # config/packages/prod/monolog.yaml monolog: handlers: main: type: stream level: error path: ‚%kernel.logs_dir%/error.log‘ formatter: Monolog\Formatter\JsonFormatter Danach muss man der Cloudwatch Daemon konfigurieren: # /etc/awslogs/awslogs.conf [general] # Path to the CloudWatch Logs…

  • Symfony Switftmailer Mail wird nicht gesendet

    Mit dem folgende Befehl kann eine Testmail versendet werden mit Swiftmailer. Falls die Email nicht ankommt, sind die Switftmailer Parameter in config/packages/swiftmailer.yaml wahrscheinlich falsch: php bin/console swiftmailer:email:send –help Da die Email mit eine Queue versendet werden, sollte trotzdem in das error_log untersucht werden unter var/log/, darin fand sich bei mir der Grund für mein Versand Problem:…

  • Symfony Sonata Redirect der Root URL in den Adminbereich

    Wenn man den User bei der Eingabe im Browser ohne ein Pfad (www.foo.de) zum Adminbereich von Sonata (www.foo.de/admin) weiterleiten will, kann man dies sehr elegant mittels eines Symfony Redirects in der routing.yml tun: index: path: / defaults: _controller: FrameworkBundle:Redirect:urlRedirect path: /admin permanent: true

  • Tutorial: Symfony Administrations-Backend erstellen

    In diesem Beitrag werde ich mit Symfony 4 eine Administartionsoberfläche mit Hilfe von Sonata erstellen und die einzelnen Schritte beschreiben. 1. Anlegen eines neuen Symfony Projektes Mit composer kann man schnell ein neues Symfony Skeleton Projekt anlegen lassen: composer create-project symfony/website-skeleton my-admin-demo Das Skeleton Projekt enthält die wichtigsten Symfony Komponenten für eine Webapplikation sowie Doctrine.…

  • Call to undefined method PHPUnit\Util\ErrorHandler::handleError()

    In Version 8.3 von PHPUnit gibt es leider die Methode handleError nicht mehr, deswegen kommt es bei meine Symfony Projekten zu Problemen. Call to undefined method PHPUnit\Util\ErrorHandler::handleError() Abhilfe schafft die Installation von PHPUnit 8.2: composer require phpunit/phpunit:8.2 –dev

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

  • Symfony FosUser Bundle eigene Password Policy anwenden

    Um im SonataAdmin mit FosUser Bundle Modul eigene Regeln zu definieren für die Stärke der Passwörter, kann man die validation.xml überschreiben, indem man im Ordner src/Application/Sonata/UserBundle/Resources/config/ eine eigene validation.xml anlegt: <?xml version=“1.0″ ?> <constraint-mapping xmlns=“http://symfony.com/schema/dic/constraint-mapping“ xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance“ xsi:schemaLocation=“http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd“> <class name=“FOS\UserBundle\Model\User“> <property name=“plainPassword“> <constraint name=“NotBlank“> <option name=“message“>fos_user.password.blank</option> <option name=“groups“> <value>Registration</value> <value>ResetPassword</value> <value>ChangePassword</value> </option> </constraint> <constraint name=“Length“>…

  • Symfony Brute-Force Guard für SonataAdmin erstellen

    Für das SonataAdmin Bundle gibt es die Möglichkeit über Symofny Guards eigene Logik in den Loginprozess einzubauen, wie z.B.: Abwehr von Brute Force Angriffen durch eine maximale Anzahl von Login-Versuchen In dem folgenden Beispiel habe ich einen Guard konfiguriert für den Administrationsbereich, der mitzählt, wie oft sich ein User falsch eingeloggt hat. Der UserManager muss…

  • PHP Skript als Windows-Dienst ausführen

    Unter Windows lassen sich Skripte, die endlos laufen sollen mit PHP mittels eines Dienstes realisieren. Dies hat den Vorteil, dass der Speicherverbrauch nicht mit der Zeit ins unendliche geht, bei endloser Skriptausführungen und eine Recovery und Restart Funktionalität implementiert werden kann, um den Dienst über lange Zeiträume am Laufen zu halten. Außerdem erhält der Dienst…

  • Windows 10 geplante Aufgabe für PHP Skript anlegen analog Crontab

    Für wiederkehrende PHP Jobs kann man den Betriebsystem Scheduler verwenden, unter Linux ist das cron und unter Windows Aufgaben. Um ein PHP Skript zu starten C:\foo\bar.php mittels der Aufgabenplanung jede Minute kann man unter Windows 10 und darunter wie folgt neue Aufgaben anlegen. Unter Systemsteuerung -> Aufgabenplanung lassen sich neue Aufgaben verwalten: