Atom: Mit den passenden Packages zum perfekten PHP-Editor

Sind Sie mit PHP Storm, Netbeans und Konsorten auch nicht allzu glücklich und bevorzugen einen etwas «leichteren» Editor zur PHP-Entwicklung? Ich zähle mich zu diesen Menschen. Und da ich mich sehr mit dem Atom-Editor angefreundet habe, habe ich mir diesen so eingerichtet, dass er auch für die PHP-Entwicklung gut funktioniert. Heute möchte ich Ihnen zeigen, wie mein Atom-Setup für PHP aufgebaut ist.

So wird Atom zum perfekten PHP-Editor.

Grundausstattung

Als erstes müssen wir natürlich sicherstellen, dass Atom installiert ist. In der Grundausstattung bringt der Editor noch nicht so viel Funktionalität mit, überzeugt jedoch mit Schnelligkeit und Einfachheit. Ausserdem kann er dank einem ausgeklügelten Plugin-System einfach erweitert werden.

Addon-Pakete können entweder direkt über den Editor oder über die Kommandozeile installiert werden. Für die Entwicklung von PHP-Projekten sollten wir nun zwei grundsätzliche Pakete installieren, die wir später benötigen werden:

  • Project Manager: Wird benötigt, um in Atom einfach Projekte zu definieren.
  • php-integrator-base: Legt die Grundlage für einige Plugins, die das Editieren von PHP-Code in Atom vereinfachen.

Wie auf der offiziellen PHP-Integrator-Website beschrieben, kann das Projekt nun folgendermassen initialisiert werden:

  • Über «Packages» > «Project Manager» > «Save Project» initialisieren wir das Projekt.
  • Über «Packages» > «PHP Integrator» > «Set Up Current Project» definieren wir das Projekt als PHP-Projekt.

Danach wird das gesamte Projekt automatisch indexiert und dem Einsatz von weiteren Plugins steht nichts mehr im Weg.

Autovervollständigung

Mit dem Paket «autocomplete-plus» bietet Atom eine eigene Lösung für schöne Autovervollständigungen an, die den Standardmechanismus ersetzt. Im Normalfall ist das Paket bereits installiert und aktiv. Ist das nicht der Fall, holen wir das noch nach.

Das Paket ist allerdings nur ein sogenannter «Provider», welcher von anderen Paketen verwendet werden kann. Standardmässig kennt Atom keine Vervollständigung von PHP-Code. Hier hilft uns das Plugin «php-integrator-autocomplete-plus», welches auf dem bereits installieren Paket «php-integrator-base» aufbaut.

PHP-Autovervollständigung im Atom-Editor.

PHP-Autovervollständigung im Atom-Editor.

Das Paket bietet einige Features:

  • Autocompletion for local variable names.
  • Autocompletion for global functions and constants.
  • Autocompletion (snippets) for tag names in docblocks.
  • Autocompletion for class, interface and trait members.
  • Autocompletion for class, interface and trait names as well as their constructors.
  • Automatic adding of use statements when class names are autocompleted (with a somewhat intelligent positioning).
    • Included is a command to sort the current use statements.

Navigation

Von waschechten IDEs sind wir uns gewohnt, dass wir auf Variablen oder Funktionen klicken können und dann automatisch bei der passenden Definition landen. Auch diese Funktionalität lässt sich mit einem passenden Plugin hinzufügen.

Als erstes benötigen wir das Paket «hyperclick», welches ebenfalls nur als Provider fungiert und von anderen Paketen verwendet werden kann. Nachdem wir «hyperclick» installiert haben, können wir das Paket «php-integrator-navigation» installieren, das diese Funktionalität perfekt für PHP-Code umsetzt.

Methoden, Funktionen, Variablen und Klassen können wir nun mit der Tastenkombination «Ctrl/Cmd» + «Klick» anwählen und landen damit automatisch bei der entsprechenden Definition. Das Paket bietet gemäss README die folgenden Funktionen:

  • Navigate to the definition of your global PHP constants and functions.
  • Navigate to the PHP documentation of built-in classes and functions by alt-clicking them.
  • Navigate to the definition of classes, traits and interfaces by alt-clicking them.
  • Navigate to the definition of class, trait and interface members by alt-clicking them.

Linter

Zum Thema Linting scheiden sich die Geister. Persönlich halte ich es für sinnvoll, dass mich der Editor direkt auf Coding-Style-Verletzungen hinweist. Wer das genau so praktisch findet wie ich, kann sich mit folgenden Paketen die passenden Funktionen in Atom dazuholen:

  • Linter: Das Provider-Paket.
  • linter-phpcs: Ein Linter auf Basis von PHP_CodeSniffer.
    (Achtung: PHP_CodeSniffer muss bereits installiert sein.)
  • php-integrator-linter: Ein weiterer Linter, der zusätzliche Verstösse – wie z.B. Ungenauigkeiten bei docBlocks – feststellen kann.
PHP-Linter im Atom-Editor.

PHP-Linter im Atom-Editor.

Weitere Pakete

Die wichtigsten Pakete, die Atom zu einem perfekten PHP-Editor machen, sind damit installiert. Wer in den verfügbaren Packages nach «php-integrator» sucht, findet unzählige weitere interessante Pakete, die in diesem Beitrag nicht erwähnt sind.

Auf welches Paket können Sie nicht mehr verzichten? Ich freue mich auf Ihren Kommentar.

PHP 7.0 wird im Juli 2017 neue Standardversion

Seit August 2015 können Sie die aktuellste Major-Version von PHP bei uns nutzen. Zu Beginn noch in einer Vorabversion, erschien die erste stabile Variante von PHP 7.0 schlussendlich am 3. Dezember 2015 und sorgt seither gegenüber den Vorgängerversionen für mächtig Dampf in PHP-Applikationen.

PHP 7.0 wird am 11. Juli 2017 neue Standardversion.

PHP 7.0 wird am 11. Juli 2017 neue Standardversion.

Professionellere Entwicklung

In den letzten Jahren wurde die Weiterentwicklung von PHP stetig professionalisiert. War es in Zeiten von PHP 3 und 4 noch eher Glückssache, ein verlässliches Datum für eine neue Version zu erahnen, sind die Entwicklungszyklen mittlerweile standardisiert. Wir folgen diesem Zyklus bereits seit einiger Zeit. Das soll bei PHP 7.0 nicht anders sein, weshalb wir PHP 7.0 ab 11. Juli 2017 zur neuen Standardversion auf unseren Servern machen werden.

Adieu PHP 5.6

Mit der Umstellung der Standardversion ist die Zeit gekommen, Ihre Website fit für PHP 7.0 zu machen. Die aktuelle Standardversion PHP 5.6 werden Sie bei uns, ganz nach offiziellem Zeitplan, noch bis Ende 2018 nutzen können.

Muss ich etwas unternehmen?

Falls Sie bisher nicht explizit eine PHP-Version in Ihrem my.cyon-Konto gewählt haben, nutzen Sie für Ihre Website die aktuelle Standardversion PHP 5.6. Ohne eine Änderung durch Sie, wird Ihre Website ab 11. Juli 2017 automatisch mit PHP 7.0 ausgeliefert. In der Regel führt das zu keinen Problemen, trotzdem empfehlen wir, dass Sie Ihre Website schon jetzt darauf prüfen, ob sie auch mit PHP 7.0 funktioniert.

Wie prüfe ich, ob meine Website auch mit PHP 7.0 funktioniert?

Die beliebtesten Content-Management-Systeme sind bereits seit längerem mit PHP 7.0 kompatibel. Um zu testen, ob Ihre Website auch mit PHP 7.0 problemlos funktioniert, gehen Sie bitte wie folgt vor:

  1. Loggen Sie sich in Ihr my.cyon-Konto ein.
  2. Wählen Sie den Menüpunkt «Erweitert > PHP-Versionsmanager».
  3. Wählen Sie für das Stammverzeichnis «public_html» oder einen einzelnen Unterordner die PHP-Version 7.0.
    PHP-Versionsmanager

    PHP-Versionsmanager

  4. Rufen Sie Ihre Website auf und prüfen Sie diese auf sichtbare Fehler oder fehlende Elemente.

Tipp: Testen Sie bei dieser Gelegenheit, ob Ihre Website auch mit PHP 7.1 kompatibel ist. PHP 7.1 wird voraussichtlich bis 01. Dezember 2019 unterstützt.

Häufigster Stolperstein: Plugins und Themes

Die beliebtesten Content-Management-Systeme funktionieren, wie erwähnt, problemlos mit PHP 7.0. Hindernis können jedoch Plugins und Themes sein, die nicht mehr unterstützten Code verwenden. So ist beispielsweise Joomla ab Version 3.5 mit PHP 7.0 kompatibel, einige Erweiterungen haben den Sprung jedoch noch nicht geschafft. Testen Sie in diesem Fall Ihre Website nach oben beschriebener Methode oder fragen Sie beim Entwickler des Plugins nach, ob es mit PHP 7.0 kompatibel ist.

Falls Sie WordPress nutzen, steht ein passendes Plugin bereit, das Ihre Installation darauf prüft, ob alle Komponenten auch mit PHP 7.0 einwandfrei funktionieren: PHP Compatibility Checker.

LiteSpeed Cache: Neuer Stern am Cache-Himmel

Dass die Geschwindigkeit einer Website ein entscheidender Faktor ist, ist heute hinlänglich bekannt. Schnelle Websites freuen nicht nur Ihre Besucher, sie landen in den Suchmaschinen auch auf besseren Plätzen. Wir setzen mit unseren Produkten also alles daran, dass Ihre Website so schnell wie möglich beim Betrachter landet. Heute stellen wir Ihnen ein neues Werkzeug vor, mit welchem Sie die Geschwindigkeit Ihrer Website in ungeahnte Sphären hieven: LiteSpeed Cache.

LiteSpeed Cache: Neuer Stern am Cache-Himmel

Caching, die Paradedisziplin der Website-Optimierung

Den Begriff «Cache» kennen Sie vermutlich in Verbindung mit Ihrem Browser. Sie haben bestimmt auch schon den Tipp bekommen, wenn eine Website nicht funktioniert hat: «Hast Du den Browser-Cache schon gelöscht?»

Ein Cache ist ein Puffer oder Zwischenspeicher. So müssen zum Beispiel Daten, die im Browser-Cache vorhanden sind, nicht erneut vom Server heruntergeladen werden. Ein serverseitiger Cache funktioniert da ganz ähnlich. Beim Aufruf einer Website werden im Hintergrund tausende Rechenoperationen ausgeführt, die schlussendlich zur ausgelieferten HTML-Seite führen. Ist nun LiteSpeed Cache im Einsatz, muss der Server diese HTML-Seite nicht bei jedem Aufruf neu berechnen, sondern kann die bereits fixfertige Seite aus dem Arbeitsspeicher an den Browser des Besuchers liefern. Das ist massiv schneller. Ausserdem hilft der Cache, Server-Leistung zu sparen, die wiederum für neue Anfragen zur Verfügung steht. So wird nicht nur eine einzelne Anfrage schneller beantwortet, der Server kann auch viel mehr Anfragen und damit Besucher gleichzeitig bedienen.

LiteSpeed Cache, ein Cache für alle

Caching kann aber auch seine Tücke haben: Welche Inhalte dürfen gecached werden und welche nicht? Verhalten sich gecachte Inhalte auch so wie gewünscht? Wann lösche ich einen gecachten Inhalt und wann soll der Inhalt neu gecached werden? Schliesslich möchten Sie beispielsweise nach dem Publizieren eines neuen Artikels nicht ewig warten, bis dieser dann auch sichtbar wird.

Solche Themen lassen sich mit dem LiteSpeed Cache elegant lösen: Entweder mit einem pfannenfertigen Plugin oder mit ein paar Anpassungen in Ihrer .htaccess-Datei. Passende Anleitungen für Drupal, Joomla und PrestaShop finden Sie in unserem Supportcenter. Eine generelle Anleitung stellt LiteSpeed im offiziellen Wiki zur Verfügung.

Falls Sie WordPress, das beliebteste CMS unserer Kunden, nutzen, reicht die Installation des offiziellen LiteSpeed Cache-Plugins.

LiteSpeed Cache ist auf allen unseren Webhosting-Angeboten verfügbar. Sie können Ihre Besucher also per sofort in einen Geschwindigkeitsrausch versetzen. Falls Sie LiteSpeed Cache auf einem Agencyserver oder Speedserver nutzen möchten, schicken Sie uns bitte eine E-Mail. Wir aktivieren die Funktion gerne kostenlos für Sie.

Versionsverwaltung selbstgemacht: Gitlab auf dem eigenen Server

Gitlab hat sich als Open-Source-Alternative zu Diensten wie GitHub oder Bitbucket einen Namen gemacht. Die kostenlose Community Edition der Versionsverwaltungs-Software lässt sich problemlos auf eigener Hardware oder einem virtuellen Server installieren. Heute zeigen wir Ihnen, wie Sie Gitlab auf einem Geekserver installieren und mit einem SSL-Zertifikat von Let’s Encrypt ausstatten.

Hinweis: Wir haben das Geekserver-Angebot per Ende Juli 2017 eingestellt.

Gitlab: Versionsverwaltung selbstgemacht

Die Vorbereitungen

Wir installieren die Gitlab Community Edition (Gitlab CE) auf einem Server mit der momentan aktuellen LTS-Version 16.04 der beliebten Linux-Distrution Ubuntu. Gitlab verlangt für den vernünftigen Betrieb eine Maschine mit 4 GB Arbeitsspeicher. Ein Geekserver mit der benötigten Power steht in wenigen Minuten bereit.

Software

Alle benötigten Bestandteile, um Gitlab auf einem eigenen Server zu betreiben, sind als Open-Source-Software verfügbar. Gitlab bietet dazu für verschiedene Linux-Distributionen die sogenannten Omnibus-Pakete an, die praktisch alle benötigten Komponenten enthalten und die sich in wenigen Minuten installieren lassen.

Sicherheit

Eine frische Ubuntu-Installation sollte mit einigen Massnahmen gesichert werden, um ungewollten Zugriff von Dritten zu verhindern. Mit einem unprivilegierten Benutzer, der anstatt root verwendet wird, der einfach zu bedienenden Firewall ufw und dem Deaktivieren von SSH-Logins per Passwort sind die wichtigsten Teile auf Betriebssystem-Seite abgedeckt.

Falls nicht bereits geschehen, geben wir mit sudo ufw allow http und sudo ufw allow https die Ports für HTTP und HTTPS frei, da wir diese später für Gitlab und das Anfordern des SSL-Zertifikats benötigen.

Damit die Kommunikation zur Gitlab-Installation verschlüsselt ist, beziehen wir von der Zertifizierungsstelle Let’s Encrypt ein kostenloses SSL-Zertifikat und binden es in Gitlab ein.

Adresse

Gitlab wird unter einem öffentlich erreichbaren Hostnamen erreichbar sein. Dazu benötigen wir eine Domain bzw. Subdomain, die per DNS-Eintrag auf den Server zeigt. Diesen Schritt führen wir als allererstes durch.

Die Installation

Wir installieren Gitlab auf einem Server mit Ubuntu 16.04 unter der Subdomain gitlab.oliverorange.ch. Ersetzen Sie gitlab.oliverorange.ch in den folgenden Anweisungen jeweils durch die von Ihnen gewählte Domain.

DNS-Zone

Für die neue Subdomain benötigen wir einen DNS-Record, den wir mithilfe des DNS-Editors im my.cyon-Konto unter «Webhosting/Domain» > «DNS verwalten» erstellen können.

DNS-Editor: Neuen A-Record hinzufügen.

DNS-Editor: Neuen A-Record hinzufügen.

Wir geben im Feld «Zone» den kompletten Domainnamen ein und im Feld «Wert» die IP-Adresse unseres Geekservers.

Gitlab installieren

Wir verbinden uns per SSH zu unserem Geekserver und installieren als erstes Abhängigkeiten, die von Gitlab benötigt werden.

sudo apt-get install curl openssh-server ca-certificates postfix

Die Installation von Postfix wird mit einer kleinen Installationsroutine begleitet. Wir wählen dort die Option Internet Site.

Danach fügen wir das Gitlab-Paket der Paketverwaltung hinzu:

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Und installieren das Paket:
sudo apt-get install gitlab-ce

Zum Schluss konfigurieren wir Gitlab mit folgendem Befehl:
sudo gitlab-ctl reconfigure

Danach ist Gitlab bereits einsatzbereit. Wir müssen lediglich das Administrator-Passwort setzen, was wir denn auch gleich im Browser tun. Wir rufen dazu die vorerst noch unverschlüsselte URL http://gitlab.oliverorange.ch auf und vergeben ein sicheres Passwort.

Gitlab: Issue-Board

Issues in der Board-Ansicht.

SSL-Zertifikat anfordern

Dank Let’s Encrypt können wir für unsere Gitlab-Installation ein kostenloses SSL-Zertifikat ausstellen lassen. Dazu installieren wir den Client namens Certbot auf dem Server (das passende Paket heisst in der Paketverwaltung von Ubuntu 16.04 noch letsencrypt):

sudo apt-get install letsencrypt

Um das gewünschte SSL-Zertifikat für gitlab.oliverorange.ch zu erhalten, müssen wir beweisen können, dass wir die zu sichernde Subdomain kontrollieren. Wir machen uns dabei den nginx-Webserver zu Nutze, den Gitlab für die Ausgabe der Webapplikation verwendet. Wir erstellen dazu als erstes ein Verzeichnis, in welchem der Certbot-Client eine Datei ablegen wird, die unsere Kontrolle von gitlab.oliverorange.ch beweist:
sudo mkdir -p /var/www/letsencrypt

Danach editieren wir die Gitlab-Konfigurationsdatei /etc/gitlab/gitlab.rb mit dem Befehl sudo vim /etc/gitlab/gitlab.rb und fügen im Abschnitt GitLab Nginx folgende Zeile hinzu:

nginx['custom_gitlab_server_config'] = "location ^~ /.well-known { root /var/www/letsencrypt; }"

Die Zeile bewirkt, dass das zuvor erstellte Webverzeichnis von nginx gegen aussen unter der Adresse /.well-know erreichbar gemacht wird. Mit :wq speichern und schliessen wir die Datei in vim. Nun können wir das Zertifikat bei Let’s Encrypt beantragen. Das erreichen wir mit folgendem Befehl:

sudo letsencrypt certonly -a webroot -w /var/www/letsencrypt -d gitlab.oliverorange.ch

-a webroot bewirkt, dass die Authentifizierung bei Let’s Encrypt per Webroot beantragt wird, -w /var/www/letsencrypt teilt dem Certbot-Client mit, auf welches Verzeichnis das Webroot zeigen soll und -d gitlab.oliverorange.ch gibt die zu sichernde Domain an.

Es erscheint ein grafischer Dialog, bei dem wir eine E-Mail-Adresse angeben, an die wir Informationen von der Zertifizierungsstelle erhalten, falls beispielsweise das Zertifikat ablaufen sollte. Ausserdem akzeptieren wir die AGB der Zertifizierungsstelle.

Die erstellten Schlüssel und Zertifikate befinden sich danach im Verzeichnis /etc/letsencrypt/live/gitlab.oliverorange.ch.

SSL-Zertifikat mit Gitlab konfigurieren

Damit das soeben angeforderte SSL-Zertifikat mit Gitlab auch funktioniert, passen wir die Gitlab-Konfiguration entsprechend an. Wir öffnen die Konfigurationsdatei mit sudo vim /etc/gitlab/gitlab.rb und ändern als erstes die Zeile

external_url 'http://gitlab.oliverorange.ch'

zu

external_url 'https://gitlab.oliverorange.ch'

fügen also dem Protokoll einfach ein s hinzu.

Als zweites hinterlegen wir den Pfad zu den Zertifikaten und aktivieren die Weiterleitung von HTTP zu HTTPS. Wir ändern dazu die folgenden drei Zeilen im Abschnitt GitLab Nginx von

# nginx['redirect_http_to_https'] = false
# nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt"
# nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key"

zu

nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.oliverorange.ch/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.oliverorange.ch/privkey.pem"

und speichern die Konfiguration mit :wq. Zum Schluss laden wir in Gitlab die neue Konfiguration mit sudo gitlab-ctl reconfigure. Unsere Gitlab-Installation ist nun per HTTPS erreichbar.

SSL-Zertifikat automatisch verlängern lassen

SSL-Zertifikate von Let’s Encrypt sind 90 Tage gültig und müssen daher regelmässig erneuert werden. Die Erneuerung erledigen wir deshalb mit einem Cronjob. Wir legen mit dem Befehl sudo vim /etc/cron.d/letsencrypt eine neue Datei im Verzeichnis /etc/cron.d/ an und fügen den Befehl zur Erneuerung ein:

0 */12 * * * root perl -e 'sleep int(rand(3600))' && letsencrypt renew | tee | grep -q "/etc/letsencrypt/live/gitlab.oliverorange.ch/fullchain.pem (success)" && /usr/bin/gitlab-ctl hup nginx >> /var/log/letsencrypt-renew.log

Da die Certbot-Version in Ubuntu 16.04 die Option --renew-hook noch nicht kennt prüfen wir jeweils die die Rückgabe-Werte von letsencrypt, ob diese den Teil

/etc/letsencrypt/live/gitlab.oliverorange.ch/fullchain.pem (success)

enthalten. Ist das der Fall, wird mit /usr/bin/gitlab-ctl hup nginx nginx neu geladen und mit >> /var/log/letsencrypt-renew.log eine Nachricht im Renew-Log hinterlegt.

Verlosung: 5 x «The Sketch Handbook» zu gewinnen

Das waren noch Zeiten, als das Grafikprogramm Fireworks Mass aller Dinge für die Gestaltung fürs Web war. Lange hat es gedauert, bis das Tool einen, wie wir finden, würdigen Nachfolger erhalten hat. Geliefert hat sie uns die Softwareschmiede Bohemian mit Sketch, das mittlerweile bereits in Version 42 erschienen ist. Wir verlosen 5 Exemplare des Buchs «The Sketch Handbook» aus der Smashing Magazine-Kollektion.

Wir verlosen 5 Exemplare von The Sketch Handbook

Sketch, das Tool für UI-, UX- und Webdesigner

Wer heute fürs Web designt kommt an Sketch nicht vorbei. Das Grafikprogramm hat sich dank vielen praktischen Funktionen zum Liebling von Frontend-Designern gemausert. Falls Sie uns bei Twitter folgen oder unsere Linktipps per E-Mail abonniert haben, werden Sie es möglicherweise bereits bemerkt haben: Wir mögen Sketch. Diese Affinität kommt nicht von ungefähr. Sketch hat in unseren Teams die Adobe-Palette von Grafiktools grösstenteils abgelöst. Sei das für das Design von Interfaces oder das Kreieren von Bildern für Blog und Social-Media.

«The Sketch Handbook»

Das Buch «The Sketch Handbook» aus dem Hause Smashing Magazine bietet sowohl für Sketch-Einsteiger als auch -Kenner wertvollen Lesestoff. Autor Christian Krammer ist ausgewiesener Sketch-Profi und betreibt die Website sketchtips.info auf der er Tipps, Gedanken und Insights zu seiner liebsten Design-App publiziert.

In 12 Kapiteln führt Sie Christian durch alle Aspekte von Sketch: Von Smart-Guides über Ebenenmanipulationen zu responsiven Baseline-Grids und verschachtelten Symbolen. Und das nicht anhand theoretischer Szenarien sondern mit Beispielen aus der realen Welt. Eine grosse Rolle spielen dabei effiziente Workflows. Christian zeigt, wie Sie mit Keyboard-Shortcuts und dem cleveren Nutzen von verfügbaren Funktionen am schnellsten zum gewünschten Resultat kommen.

«The Sketch Handbook» darf in keiner Webdesigner-Sammlung fehlen. Mit ein bisschen Glück schicken wir Ihnen schon bald eines der 5 Exemplare zu. Für jede der folgenden Aufgaben erhalten sie eines oder mehrere Lose und nehmen so an der Verlosung teil:

Verlosung: 5 x 1 Exemplar des Buches «The Sketch Handbook»

Hinweis: Um teilzunehmen, müssen nicht alle Optionen gewählt werden.

Teilnahmebedingungen

  • Verlost wird 5 x 1 Exemplar des Buches «The Sketch Handbook» von Christian Krammer. Eine Barauszahlung des Preises ist ausgeschlossen.
  • Teilnahmeschluss ist der 24.02.2017, 17:00 Uhr.
  • Teilnahmeberechtigt sind alle Personen die das 18. Altersjahr vollendet haben. Mitarbeiter der cyon GmbH sind von der Teilnahme ausgeschlossen.
  • Die Gewinner werden nach Teilnahmeschluss mithilfe von Rafflecopter per Zufallsgenerator bestimmt und per E-Mail informiert.
  • Der Teilnehmer erklärt sich einverstanden, dass sein Name im Fall des Gewinns auf der Website und den Social-Media-Profilen der cyon GmbH veröffentlicht wird.
  • Wir behalten uns vor, die Verlosung jederzeit zu ändern, anzupassen oder zu beenden und Teilnehmer bei Missbrauch nachträglich von der Teilnahme auszuschliessen.
  • Über die Verlosung wird keine Korrespondenz geführt. Der Rechtsweg ist ausgeschlossen.
Seite 4 von 105« Erste...23456...102030...Letzte »