Open Development

Video

Die Projekte

Shopware PHPStorm Plugin

ONGR Integration

+

  • NGINX + LUA-Script
  • Shopware & MySQL
  • ONGR & elasticsearch
  • Cloned Shopware Templatenope in Twig
  • Shopware sends product data to ONGR via API

DOM PDF

DOMPDF

André Wisplinghoff

Sven Münnich

AJAX Variantenwechsel

AND / OR Search

Shopware Media

Inhalte


  • CDN
  • Pfad-Normalisierung
  • Garbage collection

CDN

Wofür?

  • Skalierung
  • Cluster
  • Verhindert Duplizierung von Bildern

Wie funktioniert das?

  • Zentralisierte Schnittstelle zum Dateisystem
  • Diese Schnittstelle ist austauschbar und kann bspw. mit Amazon S3 reden

Konfiguration



'cdn' => [
    'backend' => 'aws',
    'local' => [
        'type' => 'local',
        'mediaUrl' => '',
        'path' => realpath(__DIR__ . '/../../../')
    ],
    'webdav' => [
        'type' => 'webdav',
        'mediaUrl' => 'http://webdav-server/',
        'url' => 'http://webdav-server/'
    ],
    'sftp' => [
        'type' => 'sftp',
        'mediaUrl' => 'http://localhost/cdn_sftp/',
        'host' => 'localhost',
        'username' => 'username',
        'privateKey' => '/path/to/id_rsa',
        'root' => '/var/www/cdn_sftp'
    ],
    'aws' => [
        'type' => 'aws',
        'key' => '',
        'secret' => '',
        'region' => '',
        'bucket' => '',
        'mediaUrl' => ''
    ]
]
    

Das MediaServiceInterface


interface MediaServiceInterface
{
    public function getUrl($path);

    public function read($path);

    public function write($path, $contents);

    public function has($path);

    public function delete($path);

    public function getSize($path);

    public function rename($path, $newpath);
}

Was ist das Resultat?

  • Viele mögliche Backends
  • Leichte Migration
  • php bin/console sw:media:migrate --from=local --to=aws

Pfad Normalisierung

Das Problem

  • /media/image flache Struktur von Bildern
  • Schlecht für NTFS
  • Schlecht für FTP-Clients
  • Schlecht für die Nerven

Die Lösung

  • Normalisierung: /media/image/sommerwelten.png
  • Real: /media/image/fe/0b/ff/sommerwelten.png
  • Verteilung auf 3-Ordner-Ebenen

Media gabage collector

Warum?

  • Keine Übersicht unbenutzter Bilder
  • Manuelle Nachpflege
  • Problem: How to know, if / where a plugin uses an image?

Die Lösung

  • sw:media:cleanup: Verschiebt Bilder in den Papierkorb
  • sw:media:cleanup --delete löscht

Erweiterung


return new ArrayCollection([
    new MediaPosition('s_articles_img', 'media_id', 'id'),
    new MediaPosition('s_categories', 'mediaID', 'id'),
    new MediaPosition('s_emarketing_banners', 'img', 'path'),
    new MediaPosition('s_blog_media', 'media_id', 'id'),
    new MediaPosition('s_core_config_mails_attachments', 'mediaID', 'id'),
    new MediaPosition('s_filter_values', 'media_id', 'id'),
    new MediaPosition('s_emotion_element_value', 'value', 'path'),
    new MediaPosition('s_emotion', 'landingpage_teaser', 'path'),
    new MediaPosition('s_articles_downloads', 'filename', 'path'),
    new MediaPosition('s_articles_supplier', 'img', 'path')
]);

Neues Event

Shopware_Collect_MediaPositions

Danke an all Teilnehmer!

Thank you!