https://d226lax1qjow5r.cloudfront.net/blog/blogposts/vonage-at-phpuk-2022/event-report.png

Vonage bei PHPUK 2022

Zuletzt aktualisiert am March 1, 2022

Lesedauer: 7 Minuten

Angesichts der Umstände der letzten zweieinhalb Jahre wird es wahrscheinlich nicht allzu sehr überraschen, dass sich das Team sehr auf PHPUK 2022 gefreut hat. Wir hatten alle eine Reihe von Rückschlägen (oder Fehlschlägen, vielleicht - zum Beispiel sollten wir an der LaraconEUdie verständlicherweise abgesagt wurde, weil Amsterdam zu diesem Zeitpunkt das Epizentrum der neuen COVID-Welle war), als Tech-Events wieder für die Welt geöffnet wurden, und wie Sie sich vorstellen können, haben wir es aus Sicht der Entwicklerbeziehungen als äußerst schwierig empfunden. Schließlich sind Meetings und Konferenzen ein wichtiger Bestandteil, um mit Menschen in Kontakt zu treten. Wir hatten ein Team auf dem Weg zur Veranstaltung, bewaffnet mit einem kompletten Konferenzstand; die Dinge fühlen sich als würden die Dinge allmählich wieder "zur Normalität" zurückkehren.

Die Omicron-Variante kam gerade dann, als wir bereit waren, wieder nach draußen zu gehen. Bei PHPUK sprach ich mit Gary Hockin über seine Keynote bei der PHPScotland Ende letzten Jahres, der einzigen größeren PHP-Veranstaltung außer der LonghornPHP war, die überhaupt stattfinden konnte. Die Numbers waren rückläufig, und die notwendigen Vorkehrungen erschwerten einige Aspekte der Konferenz. Da sich PHPUK mehr oder weniger am Ende der Omicron COVID-Welle befand, wussten wir nicht, was wir erwarten sollten.

Vonage's booth at PHPUK 2022Our booth at PHPUK 2022

Aus Vorsichtsgründen haben wir uns für Team-Masken an unserem Stand entschieden - Sie tragen eine Maske, wir tragen eine Maske. Obwohl es für uns sinnvoll war, übermäßig vorsichtig zu sein, schien es, dass die Mehrheit der Delegierten auf der Konferenz sich dafür entschieden hatte, keine Masken zu tragen.

Auf Elefantenhosen

Elephpants, prizes and swag at our conference booth

Es hat mich immer mit einem gewissen Stolz erfüllt, dass PHP die einzige Sprache mit einem [großen Satz von Sammelspielzeug ( https://elephpant.me/ ) zu haben ist (sorry Golang, das ist neu für Sie!). Sogar während der Aufnahme eines kurzen Comedy-Momentshatte das Auftauchen von gelben Elefantenhosen den größten Sammler der Welt sofort eine DM an mich geschickt, um zu fragen, ob diese neu seien(!)

Das waren sie in der Tat nicht. Wir hatten ein paar übrig gebliebene Markenprodukte von unserem früheren Unternehmen zu verschenken, aber es stellte sich die Frage: Bestellen wir eine neue Charge von Vonage-Elefanten in limitierter Auflage? Die Antwort des Teams schien ein klares "Ja" zu sein!

Ich konnte auch eine Handvoll Vorträge besuchen, die natürlich alle hervorragend waren.

Derek Rethans über PHP8.1

OK, ich gebe es zu: Ich habe die neuen Sprachfunktionen von PHP8.1 nur sehr zögerlich ausprobiert. Der einzige Grund, warum ich es auf meinem Rechner habe, war, dass ich einen experimentellen Artikel über die Verwendung nativer PHP8.1-Faserngeschrieben habe, aber dazu später mehr.

Mir sind hier 3 Dinge aufgefallen, über die Derek gesprochen hat.

Enums

Der erste ist die Einführung von nativen Enum Klassen. Innerhalb des Vonage PHP SDK und in der Tat habe ich im Laufe meiner Entwicklungskarriere viele, viele Client-/Service-Klassen kodiert, die eine große Anzahl von statischen Konstanten haben. Diese Konstanten beschreiben oft den Klassenzustand, so kann ein SMS-Objekt z. B. "versandt", "zugestellt", "ausstehend" usw. sein. Ein weiteres klassisches Beispiel wäre ein Blog-Beitrag mit einem redaktionellen Fluss - also "Entwurf", "in Prüfung", "Redaktionsschreibtisch", "veröffentlicht" usw.

Enums sind eine sehr gute Lösung, um Ihre Klassen typsicherer zu machen. Sie können mehr über ihre Implementierung lesen hierund wie Sie in meinem Artikel über Laravel 9zu entnehmen ist, werden sie bereits von größeren Frameworks für relevante Anwendungsfälle eingeführt.

array_ist_liste()

Eine regelmäßige Beschwerde in der PHP-Welt ist die Art und Weise, wie Arrays strukturiert sind und daher von Entwicklern verwendet werden. Als ich anfing, in PHP zu programmieren, war ich nicht schlauer, als ich von "Hash-Arrays" und "assoziativen Arrays" hörte, weil ich dachte, dass das alles Sinn macht. Doch viele Jahre Erfahrung, Narben aus schwächeren Codebasen und Erkenntnisse aus anderen Sprachen (in diesem Fall, Python) haben mich dazu gebracht, PHPs Implementierung von Arrays als Datenstruktur als das zu sehen, was sie ist: ein Hack mit dem Potenzial, eine Menge Probleme zu verursachen.

Die Einführung von array_is_list() ist ein willkommener Schritt zu einem vielleicht intuitiveren Umgang mit Arrays. Jetzt können Sie überprüfen, ob das Array tatsächlich das ist, was in anderen Sprachen als listdefiniert ist, nämlich ein Hash-Array mit aufeinanderfolgenden ganzzahligen Schlüsseln. Beispiele für die Verwendung in der Praxis finden Sie in der PHP-Dokumentation.

Neues Schlüsselwort in Initialisatoren

Dieser Punkt wird wahrscheinlich am meisten bei den regelmäßigen Nutzern des Frameworks ankommen, die regelmäßig Dienste erstellen, die Dependency Injection verwenden. Zusammen mit PHP8s Einführung der Förderung von Konstruktoreigenschaftenkönnen Sie nun das new Schlüsselwort innerhalb der Argumentklammern im Konstruktor verwenden, um ziemlich explizit kodierte Konstruktorklassen zu erstellen. Sie können nun die Null-Logik herausnehmen, so dass es etwa so aussehen würde:

class Article
{
	public function __construct(
		protected WorkflowState $workflowState = new WorkflowState('draft'),
	)
}

Sie können also ein Article Objekt mit einem WorkflowState Ihrer Wahl erstellen, oder es wird standardmäßig mit dem Status "Entwurf" erstellt und als $this->workflowState.

Alexandra White zur Dokumentation

Das Developer Relations Team bei Vonage hat ein spezielles Team für die Erstellung von Dokumentationen. Und warum? Weil es schwierig ist, eine gute Dokumentation zu schreiben. Es ist absolut wichtig, dass Ihre Entwickler so schnell wie möglich die richtigen Informationen erhalten, nach denen sie suchen. Alexandra White nahm uns mit auf eine kopfschüttelnde Reise über Fallstricke, wutauslösende Versionshinweise und darüber, wie man seine Zielgruppe berücksichtigt (Spoiler: stellen Sie sicher, dass Sie Ihre Dokumente für die Vergangenheit, die Gegenwart, die Kollegen und die Community schreiben, und machen Sie das jedes Mal zu Ihrer Denkweise).

Außerdem wurde Folgendes angesprochen der Fluch des Wissensein Thema, das mir regelmäßig begegnet. Bei Vonage müssen wir uns ständig mit diesem Problem auseinandersetzen: Wir haben eine Menge APIs zu dokumentieren. Wenn wir also Dokumentation oder Blog-Artikel schreiben, müssen wir darauf achten, dass wir niemals Wissen voraussetzen. Bei der Softwareentwicklung, z. B. in der JavaScript-Welt, stehen dem Entwickler unendlich viele Möglichkeiten zur Verfügung, und deshalb ist es wichtig zu erkennen, dass man den Raum liest.

Lorna Jane Mitchell über Open Source

In den letzten 5 Jahren haben wir eine große Anzahl von gut finanzierten Start-ups gesehen, die das Geschäftsmodell nutzen, ihre Kernsoftware als Open Source zu veröffentlichen, während sie den proprietären Code als Teil eines Unternehmens- oder Pass/SaaS-Produkts beibehalten. Der "Open Source"-Aspekt unserer Arbeit verliert jedoch manchmal, wie Lorna betonte, seine Bedeutung: "Open Source" bedeutet nicht "frei und auf Github", wie wir manchmal bei Projekten sehen, die hochgeladen und dann schnell vergessen werden. Open Source bedeutet Wartung, Zusammenarbeit und Beiträge der Gemeinschaft; es ist Software, die eine Lizenz hat, die absichtlich so gewählt wurde, dass sie für sie am relevantesten ist, anstatt "eine MIT-Lizenz zu nehmen und sie zu vergessen".

Der Lizenzteil von Lornas Vortrag hat mich zum Nachdenken gebracht - welche Lizenzen verwenden wir bei Vonage für alle unsere Open Source SDKs? Sind das die richtigen Lizenzen? (nach Gesprächen darüber, ja, das sind sie!). Aber was Ihre Software ausmacht, sollte auch dokumentiert werden - das wusste ich nicht - in der SBOModer Software-Stückliste als Teil Ihres Code-Inventarisierung. Alle diese Aspekte von Open-Source-Software sind Dinge, die wir mehr in Betracht ziehen sollten, insbesondere vielleicht in PHP, da PHP wirklich eine der letzten echten Open-Source-Sprachen ist.

Milko Kosturkov über Fasern

Asynchrones PHP steht Entwicklern seit der Einführung von Generatoren in PHP5.6 zur Verfügung. Generatoren ermöglichten die Einführung von Co-Routinen, was zur Entwicklung verschiedener asynchroner PHP-Frameworks führte, wie z.B. Swoole, amphpund ReactPHP.

Der Unterschied besteht nun darin, dass die Fasern einheimisch sind, und Milko zeigte einige solide Code-Folien zur Implementierung, wie man tatsächlich für die Ereignisschleife programmieren kann. Ich gebe zu, es ist ziemlich schwer zu verstehen, aber es ist wichtig, zu zeigen und zu lernen, wie man asynchron in PHP programmiert, denn die Akzeptanz von Frameworks wie Framework X und ReactPHP nur noch zunimmt.

Dave Liddament über statische Analyse

Vor kurzem habe ich einen Artikel über PHPStangeschrieben, das eines von zwei gut gepflegten und verwendeten statischen Analysewerkzeugen ist, neben PsalmPHP. Die Arbeit, die diese Bibliotheksautoren in die Entwicklung dieser Tools gesteckt haben, ist schlichtweg erstaunlich, und DaveDie "Jack and Jill"-Erzählung von Dave, in der er einen Weg aufzeigt, wie man seinen Code robuster machen kann, hat mich dazu gebracht, darüber nachzudenken, wie viel Glück wir im PHP-Land manchmal haben. Diese Tools können, wie gezeigt, Ihre PHP-Codebasis in eine kompilierte Sprache verwandeln (und damit die Vorteile kompilierter Sprachen nutzen).

Und zu guter Letzt: James Seconde über PHP-VCR

James Seconde speaking on PHP-VCR on the Porter Tun Stage

Die Numbers waren in diesem Jahr wegen COVID bereits rückläufig, aber ich hatte auch etwas Pech, denn Sturm Eunice in London ankam, und so war es nicht verwunderlich, dass die Leute schon früh abgereist waren. Wie ich später herausfand, war das wahrscheinlich ein kluger Schachzug, denn der Sturm legte die gesamte West Coast Mainline und die Chiltern-Bahnlinie lahm, so dass ich in London festsaß.

Trotz dieser Herausforderungen habe ich es sehr genossen, auf die Bühne zu gehen und über die Entdeckung von PHP-VCR zu sprechen und Code-Beispiele zu zeigen, die das PEST-Test-Framework. Die Fragen und Antworten erwiesen sich als ziemlich langwierig, und die Interaktionen führten zu möglichen Kooperationen, um PHP-VCR in Laravel und PEST einzubringen (etwas, das ich bereits zu untersuchen begonnen habe).

Es war ein tolles Gefühl, nach fast 3 Jahren endlich wieder auf der Bühne zu stehen - aber das ist erst der Anfang. Achten Sie auf Ihre lokalen Meetup-Gruppen, um zu sehen, ob ich wieder auftauche, um diesen Vortrag für Sie zu halten!

Teilen Sie:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondeSenior PHP Entwickler Advocate

Als ausgebildeter Schauspieler mit einer Dissertation in Standup-Comedy bin ich über die Meetup-Szene zur PHP-Entwicklung gekommen. Man findet mich, wenn ich über Technik spreche oder schreibe, oder wenn ich seltsame Platten aus meiner Vinylsammlung spiele oder kaufe.