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:

composer update

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.

  1. Sie müssen die erforderlichen neuen Pakete installieren. Installieren Sie in Ihrer Befehlszeile die folgenden beiden Pakete mit Composer:
composer install vonage/client-core composer install vonage/video
  1. 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.

  1. 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