Theme-Entwicklungsumgebung: Falscher Pfad

Ich versuche gerade eine Umgebung für die Theme-Entwicklung auf Basis von Vagrant und Subversion als VCS zu erstellen. Randbedingungen sind [list] [*]automatische Shopware-Installation bei der Provisionierung[/*] [*]saubere Abtrennung des jeweiligen Theme-Codes im SVN[/*][/list] Die Ordnerstruktur lautet wie folgt: - ansible - shopware --- ... --- themes (Symbolischer Link auf ../themes - themes --- ... - vagrantfile Der Webroot ist der shopware-Ordner. Das ganze liegt in der Vagrant-Box im Ordner „/vagrant“ Prozesse bei der Provisionierung: [list] [*] Shopware-Ordner wird erstellt und Shopware heruntergeladen[/*] [*] Löschen shopware/theme-Ordner und ein symbolischer Link auf …/themes erstellt[/*][/list] Der Shopware-Ordner ist im SVN auf ignore gesetzt. Im SVN liegen also nur das Vagrant-Setup und die themes. Somit kann bei einem Checkout aut. eine Shopware-Umgebung installiert werden, ohne dass der ganze Shopware-Code unnötigerweise im SVN liegt. Das ganze funktioniert auch soweit, allerdings sind im Frontend/Backend die Pfade zu den Stylesheets falsch: <link rel="stylesheet" type="text/css" href="/vagrant/themes/Backend/ExtJs/backend/_resources/resources/css/ext-all.css?201510221322"> Anstatt: <link rel="stylesheet" type="text/css" href="/themes/Backend/ExtJs/backend/_resources/resources/css/ext-all.css?201510221322"> Shopware, bzw. Symfony/PHP nimmt als Root-Pfad den Pfad des Symlink-Targets. Als PHP-Version ist php5-5.6 im Einsatz. Kennt hier jemand eine Lösung oder einen alternativen Ansatz, um den eigenen Theme-Code im Rahmen einer automatisierten Dev-Umgebung sauber in einem Repository abzulegen?

Vermutlich ist es das gleiche Problem wie unter https://github.com/shopware/shopware/pull/349/files Wir haben jetzt testweise nur einen Symlink auf unser eigenes Theme erstellt: - shopware — themes ----- Frontend ------- Bare ------- Responsive ------- CustomTheme (Symlink auf …/…/…/themes/CustomTheme) - themes — CustomTheme Das Theme wird geladen, Anpassungen aus der all.less übernommen. Aber sobald wir zum Beispiel ein eigens favicon.ico einstellen, wird dieses nicht übernommen. Weiß jemand (Shopware-Team?) wo der Pfad für die Ressourcen generiert wird? Im Bare-Template müsste es in der Datei “index/header.tpl” <link rel="shortcut icon" href="%7Blink%20file=%24theme.favicon%7D"> die Variable $theme sein.

Es handelt sich hierbei um ein Problem mit dem {link}-Helper! Dieser kann nämlich nicht mit Symlinks umgehen.

Schau dir doch mal dieses Bugticket an: Shopware Issuetracker

Ich habe das gleiche Problem beim Symlinken von Plugins durch einen Capistrano Deployment Workflow.

Vielen Dank. Werde ich mal testen. Insgesamt finde ich, dass Shopware (so gut das System auch ist) im Bereich “Deployment und System-/Stagingumgebung” doch einige eklatante Schwächen hat - sofern man nicht gerade stolzer Besitzer einer Enterprise-Edition ist.

1 Like