Vonage Video-Übergangsleitfaden für PHP
Der Übergang von opentok/opentok zu vonage/video
Einführung
Zweck
Das OpenTok PHP SDK befindet sich im Wartungsmodus, da wir auf ein neues Video SDK umgestellt haben. Video SDK übergegangen sind, bei dem Vonage-Anmeldeinformationen in unserem Node SDK für alle APIs verwendet werden können.
Umfang
Als vonage/video verwendet die vonage/client-core Bibliothek ist PHP8.1 die Mindestanforderung, um sie zu verwenden. Das bedeutet jedoch nicht, dass eine Version unter 8.1 nicht funktioniert. Es bedeutet jedoch, dass Parsing-Fehler von niedrigeren Versionen auftreten können, insbesondere da die Kernbibliothek eine Menge Konstruktor-Eigenschafts-Promotion verwendet.
Annahmen
Um die Migration erfolgreich durchführen zu können, müssen Sie wissen, wie PHPs de-facto-Paketmanager Composer funktioniert und wie PHPs Namespaces funktionieren, da dies die größten Auswirkungen haben wird.
Ressourcen
Vonage Video SDK Quellcode Quellcode auf Packagist Vonage PHP SDK (erforderlich für die Funktion von Video) Vonage Video API-Dokumentation Vonage Video API Spezifikationen
Planung Ihrer Migration
Bewertung der Auswirkungen
Um die Auswirkungen zu verringern, sind fast alle Funktionssignaturen im Vonage Video SDK gleich geblieben. Während die Funktionsaufrufe und -argumente gleich bleiben können, wirkt sich dies vor allem auf die Client-Erstellung, die Verwendung des Clients und die Überprüfung, ob die Logik Ihrer Anwendung die Antworten auf die richtige Weise verarbeitet, aus.
Die größte Auswirkung, die bestimmen wird, ob können Sie migrieren, wenn Sie nicht unterstützte Methoden verwenden. Im Moment wird die Funktionalität unterstützt:
Erstellung von Sitzungen Signalisierung Stummschaltung erzwingen Archivierung
Die derzeit nicht unterstützten Funktionen sind:
Benutzerdefinierte S3/Azure Buckets SIP-Zusammenschaltung Live-Streaming-Übertragung Experience Composer Account-Verwaltung
Wenn Sie eines der oben genannten Systeme verwenden, können Sie nicht migrieren.
Zeitleiste
Die benötigte Zeit hängt wirklich vom Umfang der Nutzung innerhalb Ihrer Anwendung ab. Wenn Sie für jeden API-Aufruf einen OpenTok-Client erstellen müssen, wird es wahrscheinlich länger dauern. Auch die Methode zur Erstellung des OpenTok-Clients ist zeitaufwändig - hart kodierte Anmeldedaten erfordern beispielsweise mehr Refactoring.
Wenn Ihre Anwendung hauptsächlich keine Optionen verwendet, die an Ihre Videomethoden übergeben werden, kann die Migration höchstens ein paar Stunden dauern. Wenn Sie jedoch komplexere Anforderungen haben, bei denen Sie Konfigurationen an Ihre Funktionen übergeben, ist ein manuelles Refactoring erforderlich, um diese zu korrigieren. Aus diesem Grund empfehlen wir Ihnen, mehr Zeit einzuplanen, je nachdem, wie viele Aufrufe Ihre Anwendung macht.
Paket-Update
Um die Videopakete zu aktualisieren, führen Sie Folgendes in Composer aus:
Die Video- und Core-SDK-Bibliotheken verwenden das SemVer-Versionssystem. Wenn also eine dieser Bibliotheken eine Hauptversion erreicht, müssen Sie diese Hauptversion in der Datei composer.json und laufen composer update um alle Änderungen nach oben zu ziehen.
Änderungen bei der Authentifizierung
Das Vonage Video SDK bietet die Möglichkeit, Ihre Vonage-Anmeldedaten anstelle Ihrer OpenTok-Anmeldedaten zu verwenden. Sie sind jedoch abwärtskompatibel. Der Unterschied besteht darin, wie Sie die Anmeldeinformationen im neuen Client handhaben - alle Anmeldeinformationen werden jetzt über Wertobjekte gehandhabt, die klar definieren, was sie sind, anstatt über String-Argumente für ApiKey und ApiSecret. Für Ihre Migration sollten Sie ein Vonage\Client\Credentials\Basic::class Objekt mit Ihrem API-Schlüssel und Geheimnis.
Änderungen der Methode
Die Funktionssignaturen wurden mit Wertobjekten kodiert, die erstellt werden müssen. Zum Beispiel ist die createSession Methode hat sich gegenüber dieser geändert:
Zu diesem:
Sie können sehen, dass options nicht mehr ein Array ist, sondern auch standardmäßig auf null gesetzt wird. Wenn Sie kein Argument übergeben, wird das Objekt innerhalb der Methode für Sie erstellt. Wenn Sie jedoch derzeit Optionen übergeben, müssen diese migriert werden. Wertobjekte im SDK werden mit dem praktischen fromArray() Funktion. Wenn Sie also ein bestehendes Array von Optionen haben, können Sie diese wie folgt übergeben:
Strategien für die Migration
Migration über Suchen und Ersetzen
Dieser Vorgang ist in zwei Schritte unterteilt.
- Sie müssen die erforderlichen neuen Pakete installieren. Installieren Sie in Ihrer Befehlszeile die folgenden beiden Pakete mit Composer:
- Verwenden Sie in Ihrer IDE ein globales Suchen und Ersetzen. Ein Beispiel für eine Client-Erstellung wäre das folgende:
Vorausgesetzt, Sie verwenden dieselbe Codezeile, um den Client zu erstellen, sollte Ihr Suchen und Ersetzen wie folgt aussehen:
Wir verwenden hier aus Kompatibilitätsgründen vollständig qualifizierte Namespaces - Sie können den Code nach der Migration umgestalten, um die Namespaces zu importieren.
Der wichtige Teil, der hier hinzuzufügen ist, ist der Aufruf von ->video() am Ende angekettet. Wenn Sie ersetzen $client mit einem Vonage Client()sind Ihre Funktionsaufrufe nicht abwärtskompatibel. Aufruf von ->video() gibt den Video-Client zurück, bei dem es sich um den gleichen Klasseneinstiegspunkt handelt, der mit OpenTok abwärtskompatibel ist.
- Bei jeder Änderung der Methodensignatur müssen Sie die Migration von Arrays oder Strings in das richtige Wertobjekt von Hand codieren.
Wrapper/Adapter-Muster
Am einfachsten ist die Migration, wenn Sie ein beliebtes PHP Web Application Framework wie Symfony oder Laravel verwenden. In diesem Fall verwenden Sie möglicherweise bereits einen Service Container, um den Client zu booten. In diesem Fall müssen Sie nur den Client innerhalb des Dienstes ersetzen. Wenn Sie noch keinen Service-Container haben, wäre es eine gute Gelegenheit, während der Migration einen zu erstellen.
Auch ohne eines der großen Frameworks können Sie dies selbst tun. Werfen Sie einen Blick auf Ryan Chandlers ausgezeichneter Bericht hier wie eine PSR-11-Schnittstelle implementiert werden kann.
Test-Empfehlungen
Wenn Sie eine bestehende Testsuite haben, sollten Sie überprüfen, ob Ihre Behauptungen noch gültig sind. Das Erstellen einer Sitzung beispielsweise ist etwas anders, denn Sie wollen sicherstellen, dass Sie eine \Vonage\Video\Session Objekt und nicht ein OpenTok\Session ein. Der Zugriff auf Daten aus dem Wertobjekt erfolgt ebenfalls über eine Methode und nicht mehr über ein Array, so dass Sie die Assertions für alles ändern müssen, was zuvor eine Array-Rückgabe war.
Wir empfehlen das Hinzufügen von Unit- und Integrationstests für jeden Teil Ihrer Anwendung, der den Video-Client verwendet. Integrationstests sollten Live-Aufrufe an die API enthalten und als Teil Ihrer Produktionspipeline ausgeführt werden. Unit-Tests können jedoch die Antwort nachbilden, um sicherzustellen, dass keine Anrufe getätigt werden, sondern dass Ihre Anwendung die Antworten vom SDK korrekt analysiert.
Einen ersten Eindruck davon, wie man die Antworten nachahmt, erhalten Sie in der bestehende Testsuite für das SDK selbst die die Funktionen testet, die Sie in Ihr eigenes Testpaket aufnehmen möchten.
Support-Kanäle
Direkte Unterstützung über. Slack: Vonage Entwickler Slack
Erstellen Sie ein Ticket auf Github: https://github.com/Vonage/vonage-php-sdk-video