Sie sind hier
E-Book

Von Geodaten bis NoSQL: Leistungsstarke PHP-Anwendungen

Aktuelle Techniken und Methoden für Fortgeschrittene

AutorArno Hollosi
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2012
Seitenanzahl528 Seiten
ISBN9783446431225
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis27,99 EUR
LEISTUNGSSTARKE PHP-ANWENDUNGEN //
- Für fortgeschrittene PHP-Entwickler mit Kenntnissen zu Datenbanken und Webtechniken
- Vom Frontend bis zum Backend: Neue Technologien für interaktive, schnelle und benutzerfreundliche Webseiten
- Mit vielen Beispielen, Lösungen und Tipps
- Alle Beispiele aus dem Buch unter: http://downloads.hanser.de
- MySQL 5.6, PostGIS 2.0, Redis 2.4, MongoDB 2.0, Varnish 3.0, Memcached 1.4
Schnell, einfach, persönlich. Das sind aus Sicht des Benutzers die wesentlichen Erfolgsfaktoren für Websites. Wie Ihre Websites diesen Anforderungen gerecht werden, erfahren Sie in diesem Buch. Es gliedert sich in vier Themenbereiche:
Teil I Geodaten, Zeitzonen und Schriftzeichen zeigt Ihnen, wie Sie Geodatenbanken nutzen, einen Routenplaner programmieren sowie Unicode und Zeitzonen für internationale PHP-Anwendungen richtig einsetzen.
Teil II Interaktive Websites hat AJAX und Server Push zum Thema. Neben neuen Funktionen (Fortschrittsanzeige, Cross-Domain-Requests) lernen Sie Server-sent Events und WebSockets kennen und entwickeln einen eigenen eventbasierten PHP-Server, der viele Tausend Verbindungen parallel bedienen kann.
Teil III Leistungsstarke Webseiten erklärt, wie Sie HTML optimieren und Ihre Website spürbar schneller machen können. Ausführlich wird auf Caching von Webseiten und
Strategien zur Vermeidung von Cache-Stürmen eingegangen.
Teil IV MySQL und NoSQL zeigt, wie Sie Indexe und Transaktionen in MySQL richtig einsetzen und Abfragen optimieren. Mit Redis, einem Key/Value-Store, und MongoDB, einer populären Dokumentendatenbank, lernen Sie die Einsatzgebiete von NoSQL-Datenbanken kennen.
AUS DEM INHALT:
Geodatenbanken PostGIS & SpatiaLite // Zeitzonen // Unicode im Detail // JSON // Cross-Origin-AJAX // Server-sent Events // WebSockets // Eventbasierter PHP-Server im Eigenbau // Frontend optimieren // Cache-Stürme verhindern // Caching: Varnish, Edge Side Includes, APC & Memcached // MySQL: InnoDB, Indexe, Transaktionen // Redis (Key/Value-Store) // MongoDB & Map/Reduce

Kaufen Sie hier:

Horizontale Tabs

Leseprobe
AUS DEM INHALT //

- Geodatenbanken PostGIS & SpatiaLite
- Zeitzonen
- Unicode im Detail
- JSON
- Cross-Origin-AJAX
- Server-sent Events
- WebSockets
- Eventbasierter PHP-Server im Eigenbau
- Frontend optimieren
- Cache-Stürme verhindern
- Caching: Varnish, Edge Side Includes, APC & Memcached
- MySQL: InnoDB, Indexe, Transaktionen
- Redis (Key/Value-Store)
- MongoDB & Map/Reduce
Blick ins Buch
Inhaltsverzeichnis
Vorwort16
Teil I: Den Benutzer im Fokus: Geodaten, Zeitzonen und Schriftzeichen20
1 Geodaten22
1.1 Geolokalisierung in HTML523
1.1.1 Abfrage der aktuellen Position23
1.1.2 Ergebnis der Positionsabfrage24
1.1.3 Verfolgen von Positionsänderungen25
1.1.4 Optionen für die Positionsabfrage26
1.1.5 Zusammenfassung27
1.2 Lokalisierung über IP-Adresse27
1.2.1 Installation der GeoIP-PHP-Erweiterung27
1.2.2 Installation der Datenbank28
1.2.3 Auswerten der Daten28
1.2.4 Vor- und Nachteile30
1.3 GEOS30
1.3.1 Installation30
1.3.2 Geometrische Formen und Datenformate31
1.3.3 Erzeugen von geometrischen Objekten34
1.3.4 Abfragen, ob ein Objekt ein anderes beinhaltet36
1.3.5 Abfragen von Objektüberschneidungen38
1.3.6 Verändern und Kombinieren von Objekten39
1.3.7 Abfragen von Eigenschaften42
1.3.8 Bestimmen von Distanzen, Längen und Flächen45
1.3.9 Zusammenfassung46
1.4 Projektionen46
1.4.1 Arten von Projektionen47
1.4.2 Georeferenzsysteme50
1.4.3 Auswahl eines Georeferenzsystems52
1.5 Zusammenfassung55
2 Geodaten speichern56
2.1 MySQL und Geodaten56
2.1.1 Datentypen und Datenformate57
2.1.2 Beispieldaten: Landkreise und Geoinformationen59
2.1.3 Einfache geometrische Funktionen62
2.1.4 Abfragen geometrischer Beziehungen64
2.1.5 Erstellen eines geometrischen Index66
2.1.6 Zusammenfassung67
2.2 PostGIS67
2.2.1 Installation68
2.2.2 Anlegen der Datenbank69
2.2.3 Erstellen einer Tabelle mit Geodaten70
2.2.4 Laden von Shape-Dateien71
2.2.5 Ausgabedatenformate72
2.2.6 Geography-Datentyp74
2.2.7 Erstellen geometrischer Indexe77
2.2.8 Beispiele für Geo-Abfragen79
2.2.9 Kombinieren mit Maßzahlen (Measure)84
2.3 Routenberechnung mit SpatiaLite89
2.3.1 Installation89
2.3.2 Laden und Indizieren von OSM-Daten91
2.3.3 Suche des kürzesten Weges92
2.3.4 Zusammenfassung94
2.4 Kartendarstellung mit OpenLayers95
2.4.1 Software für einen Kartendienst95
2.4.2 Vorteile von OpenLayers96
2.4.3 Einfache Kartendarstellung96
2.4.4 Route in einem Layer darstellen98
2.5 Zusammenfassung100
3 Zeit und Zeitzonen102
3.1 Zeitzonen und koordinierte Weltzeit (UTC)102
3.1.1 Angabe von Zeitzonen103
3.1.2 Veränderungen der Zeitzonen104
3.1.3 Zeitzonendatenbank104
3.2 Sommerzeit105
3.3 Zeitangaben in PHP106
3.3.1 Verwendung von Unix-Zeitstempeln106
3.3.2 DateTime-Objekte107
3.4 Zeitdatentypen in MySQL109
3.4.1 Vorbereiten und Aktualisieren der Datenbank110
3.4.2 Umrechnungen110
3.4.3 Zeit- und Datumsfunktionen111
3.4.4 Empfohlene Datentypen112
3.5 Nicht-Gregorianischer Kalender113
3.6 Ermitteln der Zeitzone des Benutzers115
3.6.1 Abfragen der Client-Zeit mit JavaScript115
3.6.2 Zeitzone über Ort bestimmen116
3.6.3 Vor- und Nachteile117
3.7 Zusammenfassung117
4 Unicode118
4.1 Zeichenkodierung118
4.1.1 Kodierung und Decodierung119
4.1.2 Zeichensatz120
4.2 Unicode-Grundlagen121
4.2.1 Codepoints122
4.2.2 Abstrakte Zeichen und Äquivalente122
4.2.3 Grapheme und Komposita123
4.2.4 UTF-8 (Zeichenkodierung)124
4.2.5 UTF-16 (Zeichenkodierung)125
4.2.6 UTF-32 (Zeichenkodierung)127
4.2.7 Zusammenfassung127
4.3 PHP und Unicode128
4.3.1 Unicode ist ein Muss128
4.3.2 Unicode im PHP-Quellcode128
4.3.3 Unicode ohne Unicode-Unterstützung129
4.3.4 Validieren und Normalisieren von UTF-8-Zeichenfolgen131
4.3.5 Multibyte-Strings (PHP-Modul mbstring)136
4.3.6 Reguläre Ausdrücke137
4.3.7 Grapheme und die Länge eines Strings138
4.3.8 Zusammenfassung142
4.4 MySQL und Unicode143
4.4.1 Unterstützte Kodierungen143
4.4.2 Kodierung der Client-Verbindung143
4.4.3 Sortierfolge und Textvergleich144
4.4.4 Angeben der gewünschten Sortierfolge145
4.4.5 Auswirkung auf Indexe148
4.4.6 Fazit149
4.5 Zusammenfassung150
Teil II: Interaktive Websites: Kommunikation zwischen Client und Server152
5 Interaktive Websites154
5.1 JavaScript Object Notation (JSON)155
5.1.1 JSON-Syntax155
5.1.2 Datentypen156
5.1.3 JSON & PHP157
5.1.4 JSON parsen mit JavaScript161
5.1.5 Zusammenfassung165
5.2 JavaScript Object Notation with Padding (JSONP)165
5.2.1 Funktionsweise165
5.2.2 Sicherheit167
5.2.3 Zusammenfassung169
5.3 XMLHttpRequest169
5.3.1 Basisfunktionalität (XHR Level 1)169
5.3.2 Beispiel: Nachladen von Textinhalten172
5.3.3 Beispiel: Nachladen von XML-Inhalten175
5.4 Cross-Origin Resource Sharing (CORS)178
5.4.1 Einfache CORS-Anfragen178
5.4.2 Komplexe CORS-Abfragen (preflighted requests)180
5.4.3 Mitsenden bzw. Akzeptieren von Cookies181
5.4.4 Überblick über alle CORS-HTTP-Header182
5.5 XMLHttpRequest – Level 2183
5.5.1 Erweiterte Ereignissteuerung (XHR Level 2)183
5.5.2 Neue Datentypen (XHR Level 2)186
5.6 Navigation in AJAX-Anwendungen191
5.6.1 URL-Fragmente und Hashbang (#!)191
5.6.2 HTML5-Session-History192
5.7 Zusammenfassung195
6 Servergesteuerte Aktualisierung (Server Push)196
6.1 Kontinuierliches Abfragen (Polling)196
6.2 Long Polling und Server-sent Events (SSE)197
6.2.1 Server-sent Events: Client-Seite198
6.2.2 Server-sent Events: Protokoll201
6.2.3 Server-sent Events: Serverseite202
6.2.4 Analyse der notwendigen Ressourcen204
6.3 Eventbasierter PHP-Server204
6.3.1 Eventbasierte Architektur205
6.3.2 libevent207
6.3.3 PHP-Server mit libevent207
6.3.4 Beispiel: PHP-Server für Server-sent Events213
6.3.5 Ressourcen und Geschwindigkeit216
6.3.6 Zusammenfassung216
6.4 WebSocket217
6.4.1 Ablauf217
6.4.2 Handshake218
6.4.3 Datenübertragung mit Frames221
6.4.4 Beispiel: Eventbasierter PHP-WebSocket-Server225
6.4.5 Client-Seite229
6.4.6 Fazit235
6.5 Zusammenfassung235
Teil III: Immer schneller: Leistungsstarke Webseiten236
7 Frontend optimieren238
7.1 Warum ist das Frontend wichtig?238
7.2 Caching-Mechanismen im HTTP-Protokoll241
7.2.1 Caching-Dauer begrenzen241
7.2.2 Veränderliche Inhalte245
7.2.3 Bedingungen für die Zwischenspeicherung248
7.2.4 Kombinieren der HTTP-Header249
7.2.5 Grenzen und Probleme250
7.3 Auswirkungen des TCP-Protokolls250
7.3.1 Aufbau einer TCP-Verbindung250
7.3.2 Durchsatz einer TCP-Verbindung251
7.3.3 Browser, Verbindungen und Datendurchsatz253
7.4 Reduzieren der Anzahl der HTTP-Requests254
7.4.1 Caching254
7.4.2 Eliminieren von Umleitungen (HTTP Redirect)255
7.4.3 Zusammenführen von CSS- und JavaScript-Dateien256
7.4.4 CSS-Sprites257
7.4.5 Kleine Bilder direkt einbinden (data-Protokoll)259
7.5 Reduzieren der Größe der Ressourcen260
7.5.1 Komprimierung bei der Übertragung260
7.5.2 JavaScript262
7.5.3 CSS263
7.5.4 Bilder263
7.5.5 HTML264
7.6 Darstellungsgeschwindigkeit264
7.6.1 Einbinden von Stylesheets265
7.6.2 Einbinden von JavaScript265
7.6.3 Dynamisches Nachladen von JavaScript267
7.6.4 Minimieren von Darstellungsänderungen (Reflow)268
7.7 Weitere Techniken269
7.7.1 Flush early269
7.7.2 Anzahl der Domänen (Sharding)271
7.7.3 Cookies271
7.8 HTML 5-Web Storage272
7.8.1 Web Storage273
7.8.2 Web Storage als Cache nutzen277
7.9 Messen und Analysieren281
7.9.1 Ladezeiten und HTTP-Wasserfall281
7.9.2 Werkzeuge zur schnellen Analyse283
7.9.3 Detailanalyse284
7.10 Zusammenfassung285
8 Caching von Inhalten286
8.1 Einsatz und Ablauf von Caching286
8.1.1 Zwischenspeichern mit einem Reverse Proxy287
8.1.2 Zwischenspeichern in PHP288
8.1.3 Geeignete Inhalte auswählen289
8.2 Aktualisieren von gecachten Inhalten292
8.2.1 Synchron aktualisieren292
8.2.2 Asynchron aktualisieren293
8.2.3 Zu bestimmten Zeitpunkten aktualisieren293
8.2.4 Vor Ablauf aktualisieren293
8.2.5 Bei Zugriff aktualisieren294
8.3 Verhindern eines Cache-Sturms294
8.4 Zusammenfassung296
9 Varnish und Edge Side Includes298
9.1 Installation und Administration298
9.1.1 Installation vom Quellcode298
9.1.2 Starten von Varnish299
9.1.3 Administration299
9.1.4 Konfigurationsdateien301
9.2 Reverse Proxy302
9.2.1 Festlegen eines Webservers303
9.2.2 Cache-Eigenschaften304
9.2.3 Mehrere Webserver für unterschiedliche URLs305
9.2.4 Lastverteilung307
9.2.5 Cookies und Caching308
9.3 Edge Side Includes309
9.3.1 Syntax311
9.3.2 Konfiguration in Varnish311
9.3.3 Beispiel313
9.3.4 Alternative in JavaScript315
9.4 Zusammenfassung315
10 Alternative PHP Cache (APC)316
10.1 Installation316
10.2 Überblick und Konfiguration317
10.2.1 Opcode-Cache317
10.2.2 Benutzer-Cache318
10.2.3 Konfiguration318
10.3 Daten mit APC cachen320
10.4 Ablauf von Daten in APC322
10.5 Aktualisieren von Einträgen vor Ablauf323
10.5.1 Übersicht323
10.5.2 Sichtweise des aufrufenden Programms324
10.5.3 CachedValue-Klasse326
10.5.4 Auslesen des Eintrages (get-Methode)327
10.5.5 Speichern des Eintrages (store-Methode)329
10.5.6 Verhalten bei parallelen Zugriffen329
10.6 APC anfüttern331
10.7 Monitoring332
10.7.1 APC-eigenes Skript (apc.php)332
10.7.2 APC-Funktionen zum Monitoring333
10.8 Zusammenfassung335
11 Memcached336
11.1 Funktionsweise336
11.1.1 Übersicht und Prinzipien336
11.1.2 Datenverteilung auf Server und konsistentes Hashing338
11.1.3 Lebensdauer von Einträgen339
11.2 Installation340
11.2.1 Installieren des Servers340
11.2.2 Installieren des PHP-Moduls341
11.3 Daten cachen343
11.3.1 Zu Memcached verbinden343
11.3.2 Daten in Memcached speichern und abfragen345
11.3.3 Kombinieren mehrerer Abfragen347
11.4 Gruppieren von Werten348
11.4.1 Beispielprogramm: Benutzerklasse349
11.4.2 Beispielprogramm: Nachrichtenklasse350
11.4.3 Beispielprogramm: Nachricht schreiben und speichern350
11.4.4 Beispielprogramm: Asynchrones Auslesen aller Nachrichten352
11.5 Aktualisieren von Einträgen354
11.5.1 Überblick354
11.5.2 CachedValue-Klasse355
11.5.3 Auslesen eines Eintrages (get-Methode)356
11.5.4 Neuberechnung eines Eintrages357
11.5.5 Sichtweise des aufrufenden Programms358
11.5.6 Verhalten bei parallelen Zugriffen359
11.6 Ausfallsicherheit360
11.7 Hinweise zum Praxiseinsatz361
11.7.1 Auswahl der Server361
11.7.2 Memcached und Sessions362
11.7.3 Cachen des Fehlerfalls362
11.7.4 Speichern von statischen Inhalten363
11.7.5 Monitoring363
11.8 Zusammenfassung365
Teil IV: Datenbanken à la carte: MySQL und NoSQL366
12 MySQL für Fortgeschrittene368
12.1 Sakila-Beispieldatenbanken368
12.2 Index-Strategien370
12.2.1 Grundlagen370
12.2.2 Verwenden von Indexen372
12.2.3 Abdeckender Index (Covering Index)375
12.2.4 Sortieren von Daten376
12.2.5 Indexgröße379
12.3 Optimieren von Abfragen381
12.3.1 Abfragen von nicht benötigten Daten381
12.3.2 Seitenweises Blättern mit LIMIT382
12.3.3 Bereichsabfragen mit mehrspaltigen Indexen383
12.3.4 Beispiel: JOIN optimieren385
12.3.5 Zusammenfassung387
12.4 Transaktionen387
12.4.1 SQL-Transaktionen388
12.4.2 Isolationsstufen von Transaktionen390
12.4.3 MVCC und Lock-Mechanismen der Isolationsstufen391
12.4.4 Transaktionen mit PHP395
12.4.5 Fazit397
12.5 Zusammenfassung398
13 Redis400
13.1 Warum NoSQL?400
13.2 Übersicht403
13.3 Installation404
13.3.1 Installation als Boot-Service404
13.3.2 Installation des PHP-Moduls405
13.4 Aufbauen der Verbindung zu Redis406
13.4.1 Persistente Verbindungen406
13.4.2 Optionen406
13.5 Datentypen407
13.5.1 Zeichenketten407
13.5.2 Listen414
13.5.3 Mengen421
13.5.4 Sortierte Mengen431
13.5.5 Hashes439
13.6 Weitere Funktionen442
13.6.1 Befehle zur Schlüsselverwaltung443
13.6.2 Ablauf von Einträgen444
13.6.3 Sortieren445
13.7 Transaktionen und Pipelining449
13.8 Persistieren der Datenbank451
13.8.1 Snapshot der Datenbank451
13.8.2 Speichern per Logdatei452
13.9 Zusammenfassung453
14 MongoDB454
14.1 Installation454
14.1.1 Mongo-Shell455
14.1.2 Installation der PHP-Erweiterung455
14.2 Datenbanken und Datenschema456
14.2.1 Verbinden und Auswahl der Datenbank456
14.2.2 Auswahl und Erzeugen von Kollektionen457
14.2.3 Dokumente und Datentypen458
14.2.4 Entwerfen des Datenschemas460
14.3 CRUD-Operationen462
14.3.1 Einfügen von Dokumenten463
14.3.2 Fehlerbehandlung464
14.3.3 Primäre Schlüssel466
14.3.4 Finden von Dokumenten467
14.3.5 Aktualisieren von Dokumenten (Update)468
14.3.6 Aktualisieren verschachtelter Dokumente471
14.3.7 Löschen von Dokumenten und Kollektionen475
14.4 MongoDB-Abfragesprache476
14.4.1 Operatoren476
14.4.2 Verschachtelte Dokumente und Arrays478
14.4.3 Komplexe Bedingungen ($where)480
14.4.4 Sortieren482
14.4.5 Gruppieren484
14.5 Indizieren von Feldern487
14.5.1 Indexarten488
14.5.2 Verwenden von Indexen489
14.5.3 Analysieren von Abfragen mit explain()490
14.6 Map/Reduce494
14.6.1 Prinzip495
14.6.2 Ablauf und Parameter497
14.6.3 Inkrementelle Berechnung501
14.7 Replikation und Verfügbarkeit504
14.7.1 Funktionsweise504
14.7.2 Anlegen einer Replikationsgruppe504
14.7.3 Verwenden in PHP505
14.8 Sharding und Skalierung506
14.8.1 Funktionsweise507
14.8.2 Sharding konfigurieren507
14.8.3 Verwendung508
14.8.4 Sharding-Schlüssel auswählen509
14.9 Zusammenfassung510
Bildnachweise512
Index514

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

Arzneimittel Zeitung

Arzneimittel Zeitung

Die Arneimittel Zeitung ist die Zeitung für Entscheider und Mitarbeiter in der Pharmabranche. Sie informiert branchenspezifisch über Gesundheits- und Arzneimittelpolitik, über Unternehmen und ...

BIELEFELD GEHT AUS

BIELEFELD GEHT AUS

Freizeit- und Gastronomieführer mit umfangreichem Serviceteil, mehr als 700 Tipps und Adressen für Tag- und Nachtschwärmer Bielefeld genießen Westfälisch und weltoffen – das zeichnet nicht ...

BONSAI ART

BONSAI ART

Auflagenstärkste deutschsprachige Bonsai-Zeitschrift, basierend auf den renommiertesten Bonsai-Zeitschriften Japans mit vielen Beiträgen europäischer Gestalter. Wertvolle Informationen für ...

cards Karten cartes

cards Karten cartes

Die führende Zeitschrift für Zahlungsverkehr und Payments – international und branchenübergreifend, erscheint seit 1990 monatlich (viermal als Fachmagazin, achtmal als ...

Correo

Correo

 La Revista de Bayer CropScience para la Agricultura ModernaPflanzenschutzmagazin für den Landwirt, landwirtschaftlichen Berater, Händler und am Thema Interessierten mit umfassender ...

Das Grundeigentum

Das Grundeigentum

Das Grundeigentum - Zeitschrift für die gesamte Grundstücks-, Haus- und Wohnungswirtschaft. Für jeden, der sich gründlich und aktuell informieren will. Zu allen Fragen rund um die Immobilie. Mit ...

VideoMarkt

VideoMarkt

VideoMarkt – besser unterhalten. VideoMarkt deckt die gesamte Videobranche ab: Videoverkauf, Videoverleih und digitale Distribution. Das komplette Serviceangebot von VideoMarkt unterstützt die ...