PHP 8 incompatible changes
is het weer zover, dan werkt mijn PHP 7.4 code niet meer veilig. Een van de nieuwigheden is dat het gedrag van nummer/string-vergelijkingen is veranderd.
Het grote manco van mijn PHP code is dat ik tests nog nooit eerder heb geautomatiseerd, omdat ik alles kon overzien. TDD is een langere termijnndoel voor mij.
Aangezien de meesten hier mij zijn voorgegaan met PHP 8, vroeg ik mij af welke concrete problemen te verwachten zijn bij het porten van PHP 7.4 code naar PHP 8.0, en hoeveel tijd het zou kosten?
Eind dit jaar Het grote manco van mijn PHP code is dat ik tests nog nooit eerder heb geautomatiseerd, omdat ik alles kon overzien. TDD is een langere termijnndoel voor mij.
Aangezien de meesten hier mij zijn voorgegaan met PHP 8, vroeg ik mij af welke concrete problemen te verwachten zijn bij het porten van PHP 7.4 code naar PHP 8.0, en hoeveel tijd het zou kosten?
Zet gewoon de schakelaar om naar PHP 8.1.x, reproduceer elke bug die je vervolgens aantreft in een unittest en fiks de bug. Aanvankelijk vertraagt dat je tempo, maar naarmate je meer op je unittests kunt vertrouwen, ga je steeds sneller.
- slordigheden van mezelf, waar ik nu middels een warning wel op gewezen werd
- stokoude, niet meer onderhoude library die een hele oude constructie gebruikte
- en natuurlijk vooraf even een composer z'n ding laten doen.
7.4 was een grotere "operatie" omdat ik objectnamen had gebruikt die toen opeens "reserved words" waren.
Rob Doemaarwat op 01/03/2022 18:22:53:
7.4 was een grotere "operatie" omdat ik objectnamen had gebruikt die toen opeens "reserved words" waren.
Maar dan gebruik je ook namespaces.
Met of zonder namespaces: "Object" mocht niet meer als class naam (mijn basis object heette zo). En in een paar projecten zaten ook "Objecten" ("dingen" - heel breed, die geadverteerd/verkocht konden worden). Dat zijn nu dus allemaal "Things" geworden :-)
hongaarse notatie gebruik. Voor een taal als PHP is dat handig, omdat je dan de intentie weet of een variabele een integer of een string zou moeten zijn. Nu kan ik in de IDE een search doen in alle bestanden op booleaanse operatoren, en snel zien of ik ergens naar moet kijken.
Ik hoop voor november dit jaar over te zijn naar Rust, zodat ik niet PHP 8 hoef mee te maken. Dat is ook wel een reden om te willen weten waar ik rekening mee moet houden. TDD is voor mij ook een must voor Rust later dit jaar.
Misschien laat ik nog wat onderdelen van mijn programma in PHP, Rust kan goed samenwerken met PHP.
Mijn basisobject heet nog steeds cObject, net zoals dat ik overal en voor alle variabelen de Ik hoop voor november dit jaar over te zijn naar Rust, zodat ik niet PHP 8 hoef mee te maken. Dat is ook wel een reden om te willen weten waar ik rekening mee moet houden. TDD is voor mij ook een must voor Rust later dit jaar.
Misschien laat ik nog wat onderdelen van mijn programma in PHP, Rust kan goed samenwerken met PHP.