Autor: Sebastian Viereck
-
Windows 10: Die Aktion kann nicht abgeschlossen werden, da der Ordner in einem anderen Programm geöffnet ist
Bei Windows kommt die nervige Fehlermeldung: Die Aktion kann nicht abgeschlossen werden, da der Ordner in einem anderen Programm geöffnet ist. Schließen Sie den Ordner und wiederholen Sie den Vorgang. Auch in dem Fall, wenn man in der Konsole (cmd) in dem Ordner ist, man muss einfach aus dem Ordner rausgehen mit cd .. oder…
-
PHP XMLReader für sehr große Dateien Beispiel
Um mit PHP große XML Dateien auswerten zu können, muss man einen SAX Parser verwenden, der die XML Dateien von oben nach unten durchliest und nicht in ein Objekt umwandelt. Dafür ist der XMLReader von PHP vorgesehen. Ein Beispiel: $data = new Data(); $reader = new \XMLReader(); $reader->open($file); while ($reader->read()) { if ($reader->nodeType == \XMLReader::ELEMENT)…
-
Microsoft IIS REST API erlauben von PUT, DELETE
Um beim IIS 7.5 alle HTTP Verben wie PUT, POST, DELETE und PATCH zu aktivieren, muss man in der web.config folgende Module und Handler deaktivieren: <?xml version=“1.0″ encoding=“UTF-8″?> <configuration> <system.webServer> <modules> <remove name=“WebDAVModule“ /> </modules> <handlers> <remove name=“WebDAV“ /> <remove name=“OPTIONSVerbHandler“ /> <remove name=“TRACEVerbHandler“ /> </handlers> </system.webServer> </configuration>
-
Microsoft IIS SSL Zertifikat für localhost erstellen für Chrome 60 mit SAN
Um unter IIS ein Zertifikat für IIS zu erstellen, muss man selber ein SSL Zertifikat erstellen mit openssl (wird bei GIT mitgeliefert in C:\Program Files\Git\usr\bin). Mit den beiden Befehlen kann man sich eine .pfx Datei erzeugen, die auch unter Chrome 60 läuft mit er Option chrome://flags/#allow-insecure-localhost. openssl req -newkey rsa:2048 -x509 -nodes -keyout server.key -new …
-
Twig Extension zum Sortieren von Entitäten per Datetime Property
Wenn man im Template eine Doctrine Collection sortieren will nach einem Zeitstempel (createdAt in dem Beispiel), sollte man dies eigentlich vorher machen. Wenn dies nicht möglich ist, z.B. im Sonata Admin Bundle, dann kann man diese Twig Extension verwenden: {% foo| sortByCreatedAt(‚asc‘) %} Twig Extension Code: <?php namespace App\Twig; use App\Entity\Tag; use Doctrine\ORM\PersistentCollection; use Twig\Extension\AbstractExtension;…
-
Angular 2 HTTP Request nochmals ausführen mit rxjs und retry()
Bei einem Fehlgeschlagenen Request kann man sehr komfortabel nochmals anfragen mit der Methode retry(): import ‚rxjs/add/operator/retry‘; … const result = this.http.get(url) .retry(2);
-
Javascript Debuging auf der Konsole mit console.table()
Die neue Javascript Methode console.table() ist sehr hilfgreich, um Objekte und Arrays auf der Konsole darzustellen. Beispiel: var data = [ {„id“: „Open“}, {„id“: „OpenNew“, „label“: „Open New“}, null, {„id“: „ZoomIn“, „label“: „Zoom In“}, {„id“: „ZoomOut“, „label“: „Zoom Out“}, {„id“: „OriginalView“, „label“: „Original View“}, null, {„id“: „Quality“},…
-
Angular 5 URL ohne index.html
Bei einer Angular Anwendung muss man standardmäßig die index.html aufrufen, damit die Anwendung startet auf einem Apache Webserver. Damit dies auch ohne /index.html nur mit der Domain allein (www.foo.de) funktioneirt, muss man folgendes einstellen: 1. Erstellen einer .htaccess Datei in src/.htaccess mit dem Inhalt: DirectoryIndex index.html 2. Ändern der Base Url in der src/index.html <base…
-
Strato und MySQL: General error: 1709 Index column size too large. The maximum column size is 767 bytes.
Bei einem Kunden wurde mir folgende Fehlermeldung angezeigt, wenn ich versucht habe über Symfony die Datenbank erstellen zu lassen: General error: 1709 Index column size too large. The maximum column size is 767 bytes. Dies liegt daran, das Strato so komische Einstellung bei ihren Managed Hosting Packete wie z.B. das STRATO PowerWeb hat. Strato wird…
-
Symfony Security Passwörter hashen mit dem PasswordEncoder
Der PasswordEncoder des Symfony Frameworks ist sehr gut geeignet auch in Zukunft sichere Hashes von Passwörtern in der Datenbank zu speichern und zentral zu konfigurieren. Das SecurityBundle muss ggf. nachinstalliert werden: composer require symfony/security-bundle Man legt dazu in der security.yaml fest, welchen Hashing Algorithmus man verwenden will für welche Entität: security: encoders: App\Entity\User: bcrypt Die…