Liebe Besucher,

herzlich Willkommen!

Dies ist nur eine simple Website mit etwas Bootstrap-CSS und Grunt/npm, schnell in PHPStorm eingerichtet.

Bedauerlicherweise kann auf diesem (einfachen) IONOS-Server kein Laravel mit Tailwind und Alpine installiert werden. Composer und npm laufen hier nicht, dazu müsste die Domain erst noch auf meinen anderen Server bei Hetzner umziehen.

Dort wird ein Root-Server betrieben, der neben PHP, Apache und MySQL auch memcached, Redis, Postfix, Dovecot, restic, fail2ban, rkhunter, logwatch, goaccess usw. umfasst. Für die Mails wurde DKIM/DMARC und ein IMAP-Server eingerichtet, was eine entsprechende "zone file" nötig machte.

Was sonst passierte

Newsletter von Bounces säubern

Ein Newsletter erzeugt zwischen 0,5% bis 1% ungültige Empfänger, je nach Sendefrequenz und Pflege der Adressen. Mithilfe eines Scripts geschieht das nun automatisch vor dem Versand.

MySQL-Optimierung

Eine bestehende Datenbank aus 300 Tabellen und 50GB Datenvolumen war optimal auf einem 32GB RAM Server einzurichten. Die individuelle Beobachtung über mehrere Wochen und eine Analyse mit Hilfsmitteln wie mysqltuner.pl wurde dabei durchgeführt.

Kontrast / Schriftgrößen in Less und Sass

Für eine Website, basierend auf CSS/Less, und eine weitere, basierend auf CSS/Sass, wurden Features benötigt, um per Klick zwischen den Normalfarben und Schwarz/Weiß zu wechseln, sowie die Schriftgrößen nach Belieben zu ändern.

Cookie-Banner coden

Für zwei Websites eines mittelgroßen Landesverbandes waren Cookie-Banner zu programmieren, die Google-Dienste erlaubten und bei Bestätigung auf entsprechenden Seiten diese direkt nachluden. Desweiteren sind sie gegen Banner-Add-Ons immun, die diese automatisch bestätigen.

Gambio-Shop Import

Ein Schmuck-Shop benötigte für die CSV-Preisliste eines Großhändlers mit 13.000 Datensätzen einen individuellen Import. Dabei wurden sowohl Einzelartikel als auch Artikel mit Varianten (z.B. Ringe in verschiedenen Größen) übertragen. Das programmierte Tool ist durch Konfigurationsparameter individuell an verschiedene CSV-Formate anpassbar.

10.000 PHP-PDFs archivieren

In einem mittelgroßem Schulungsbetrieb wird seit 2010 FPDF eingesetzt, um dynamisch Rechnugen und Zahlungserinnerungen als PDF zu generieren.

Aufgabe war, alle seitdem erstellten Rechnungen/Zahlungserinnerungen erneut zu erzeugen und diese als PDF-Datei abzulegen. Dazu sollte bei jeder Änderung der Rechnungsadresse eine neue Version der Rechnung und eine Storno-PDF generiert werden, was ein internes Historien-System nötig machte.

JSON-LD - eine simple Syntax für Informationen aller Art

Strikt hierarchisch aufgebaut, lassen sich Daten abbilden, die sich in einer relationalen Datenbank über mehrere Tabellen verteilen würden.

Die standardisierte und auf RFD basierende Syntax und Struktur erlaubt einen für uns Menschen leichter lesbaren Austausch zwischen den Systemen.

Welche Daten zusammengefasst werden, hängt allein von ihrer Verfügbarkeit (und den Möglichkeiten des Codes, sowie dem Verständnis von JSON-LD) ab, wobei für viele Elemente weitere Pflichtfelder notwendig sind - bei einem Preis z.B. die Währung.

Suchmaschinen wie Google können Inhalte besser indizieren, wenn sie in korrektem JSON-LD vorliegen, während besser indizierte Seiten wiederum besser dargestellt werden können.

Inspirierende Beispiele und Vorlagen finden sich viele, wobei m.E. die von Jay Holtslander herausstechen.

Example Product
  {
    "@context": "http://schema.org",
    "@type": "Product",
    "@id": "https://www.schweiss-shop.de/111AHD0031",
    "brand": {
      "@type": "Organization",
      "name": "Fronius",
      "url": "https://www.schweiss-shop.de/fronius/"
    },
    "manufacturer": {
      "@type": "Organization",
      "name": "Fronius"
    },
    "name": "Fronius Schwei\u00dfhelm Vizor 4000 Plus - ein neues Seherlebnis im Hellzustand",
    "disambiguatingDescription": "Fronius Schwei\u00dfhelm Vizor 4000 Plus - ein neues Seherlebnis im Hellzustand - Bestellen Sie jetzt zu einem hevorragenden Preis-/Leistungs-Verh\u00e4ltnis!",
    "description": "Eine besondere Neuheit bei diesem Modell ist die bis zu 4-mal hellere Sicht im Hellzustand und im Schleifmodus. Das ist Weltrekord! der Vizor 4000 Plus definiert die Sichtverh\u00e4ltnisse f\u00fcr Schweisser neu. ",
    "sku": "111AHD0031",
    "identifier": "111AHD0031",
    "mpn": "42,0510,0230",
    "gtin": "9007947247780",
    "logo": "https://www.schweiss-shop.de/pics/firmen_logos/fronius_international_logo.png",
    "url": "https://www.schweiss-shop.de/fronius/fronius-schweisshelm-vizor-4000-plus-ein-neues-seherlebnis-im-hellzustand/111AHD0031",
    "image": {
      "@type": "ImageObject",
      "thumbnailUrl": "https://www.schweiss-shop.de/images/111AHD0025S.jpg",
      "url": "https://www.schweiss-shop.de/images/111AHD0026B.jpg",
      "width": 1200,
      "height": 1200
    },
    "offers": {
      "@context": "http://schema.org",
      "@type": "Offer",
      "category": "Zubeh\u00f6r > Arbeitsschutz > Automatikhelm Diverse",
      "priceCurrency": "EUR",
      "price": 415.31,
      "priceValidUntil": "2021-07-15",
      "availability": "https://schema.org/InStock",
      "itemCondition": "https://schema.org/NewCondition",
      "url": "https://www.schweiss-shop.de/fronius/fronius-schweisshelm-vizor-4000-plus-ein-neues-seherlebnis-im-hellzustand/111AHD0031",
      "seller": {
        "@type": "Organization",
        "name": "Schweiss Shop",
        "url": "https://www.schweiss-shop.de"
        }
      }
  }
Sitemaps.xml - simpel und effizient

Die Aufgabe der Sitemap ist, die Seiten sicher an Google und andere Bots zu liefern.
Nach unsereren Erfahrungen hat sich dabei diese Struktur als die effizienteste erwiesen:

  • "sitemap.xml" als index, die auf diese weiteren hinweist. Dort findet sich das <lastmod> für die folgenden:
  • "sitemap_index.xml" mit den Menupunkten bzw. Haupt-Links
  • "sitemap_themeA.xml" mit dem jeweiligen Thema, z.B. Produkte, Hersteller, Hersteller, Reports, News usw.
  • "sitemap_themeB_50000.xml" zusätzlich mit Zahl als Kennzeichen, wenn es mehr als 50.000 sind
  • "sitemap_themeB_100000.xml" zweite Datei mit den weiteren Seiten zum gleichen Thema
PageSpeed

Es standen PHP/HTML/JS-Arbeiten an einem Kunden-Shop u.a. mit Swiper an, der sich dadurch beim Google PageSpeed um 8 Punkte auf 94 verbesserte.

ERP

Der Task ERP-Schnittstelle zur (original) AS/400 basiert auf einer Zend 1-Erweiterung, die entsprechend anzupassen war.

Frameworks

Und nachdem ich zuerst auf meiner Maschine ein Symfony-System erstellt hatte, um das als künftige Basis zu verwenden, habe ich mich dann später doch für Laravel entschieden, zumal ich bereits eine kleine Vue-App geschrieben hatte. Besser gleich damit weitermachen... ;)

Wer Bedarf hat, kann man mich gerne buchen, weitere Infos und Kontaktdaten finden sich unten.