Ik heb onlangs mijn gehele scripting zo goed als mogelijk omgezet van 5.4 naar 7.4.
Alles werkt gelukkig naar behoren. Maar als ik nu naar versie 8 overschakel dan loopt mijn website vast. Ik zie geen error afhandeling op de pagina dus ik weet ook niet wat ik aan moet passen. Ik vernam dat er diverse drastische aanpassingen zijn gedaan in 8.0 maar kom er niet goed uit welke dat allemaal zijn.
Is er een tool om mijn huidige script in te laden en advies krijg van de tool wat er fout is of anders moet?
Is er een lijst met een overzicht van de wijzigingen?
Ik vernam dat er diverse drastische aanpassingen zijn gedaan in 8.0 maar kom er niet goed uit welke dat allemaal zijn. [...]
Is er een lijst met een overzicht van de wijzigingen?
Zie vooral de Backward Incompatible Changes. Concreet betekent dit dat elke nieuwe PHP-versie je code stuk kan maken. PHP wordt daardoor zelf wel steeds (een beetje) beter, maar je loopt elke keer achter de feiten aan. In de upgrade naar PHP 8 hebben ze zelfs de booleaanse logica aangepast. Niet echt handig als je code geen unit tests heeft.
Ik loop hier zelf ook tegen aan, ik heb helaas niet veel unit tests in mijn eigen code, en hoop voor het verlopen van 7.4 op 28 november 2022 van PHP af te zijn.
[size=xsmall]Toevoeging op 29/06/2022 10:21:48:[/size]
Nanno Koerts op 27/06/2022 17:47:41
Is er een tool om mijn huidige script in te laden en advies krijg van de tool wat er fout is of anders moet?
Kleine stukken code kan je online uitproberen op 3v4l.org voor alle PHP versies.
Voor de meeste code uit de praktijk heb je meer aan 'static code analysis' tools. Als je op internet zoekt kun je al snel een overzicht vinden van wat er ongeveer voor PHP verkrijgbaar is, bijvoorbeeld via https://meh.dev/php-static-analysis-tools .
Ad Fundum, begrijp me niet verkeerd hoor, maar kun je je "afkeur" of hoe je het ook wil noemen jegens PHP niet gewoon achterwege laten? We zitten hier op een forum voor en (meestal) door PHP-enthousiastelingen. Die steekjes onder water "Concreet betekent dit dat elke nieuwe PHP-versie je code stuk kan maken ... je loopt elke keer achter de feiten aan ... ik hoop voor het verlopen van 7.4 op 28 november 2022 van PHP af te zijn" en opmerkingen als "PHP maakt er helemaal een zootje van" begin ik inmiddels een beetje beu te worden.
Als je het allemaal zo slecht en vervelend vindt, waarom ga je je dan niet volledig op iets anders focussen en laat je de mensen die wel enthousiast zijn over PHP in hun waarde? Je antwoorden zijn nuttig hoor, begrijp me niet verkeerd. Maar die afkeur iedere keer er tussendoor, ik word er inmiddels een beetje ziek van en het begint in negatieve zin op te vallen. Prima dat je PHP niet (meer) tof vindt, maar bederf de pret van een ander dan niet.
Ik kan (en ga) je absoluut niet verbieden om dingen te zeggen, dus als je het wil zeggen ga je gang, maar besef wel dat je daarmee andermans pret bederft. Het is gewoon niet zo heel tof die kritiek iedere keer. Dan vraag ik me oprecht af wat je hier op het forum komt zoeken als je er toch mee wil stoppen.
Ad Fundum is een van de weinigen hier op het forum die beseft dat hij problemen voor had kunnen zijn met unit tests. En überhaupt een van de weinigen die weet wat unit tests zijn...
Alleen gebruikt hij het ontbreken van unit tests om het er maar bij te laten zitten, terwijl je je juist met unit tests op de aankomende breaking changes kunt voorbereiden.
Daarnaast kun je unit tests prima gebruiken om meer Ad Hoc ;-) code te debuggen: schrijf een unit test die een bug reproduceert en fiks daarna de code tot je test weer op groen staat.
Met PHP 8.2 en 9.0 wordt het opnieuw leuk: dan worden dynamic properties verboden, dus kunnen we veel WordPress script kiddies verwachten die "om onverklaarbare redenen" ineens properties in classes missen.
Voor die "onverklaarbare redenen" kun je dan gemakshalve de schuld bij PHP leggen, maar moet je het eerlijkheidshalve bij je eigen gemakzucht zoeken: had nou maar een paar unit tests geschreven die de werking van je eigen code verklaren...
Ad Fundum is een van de weinigen hier op het forum die beseft dat hij problemen voor had kunnen zijn met unit tests. En überhaupt een van de weinigen die weet wat unit tests zijn...
Alleen gebruikt hij het ontbreken van unit tests om het er maar bij te laten zitten, terwijl je je juist met unit tests op de aankomende breaking changes kunt voorbereiden.
Daarnaast kun je unit tests prima gebruiken om meer Ad Hoc ;-) code te debuggen: schrijf een unit test die een bug reproduceert en fiks daarna de code tot je test weer op groen staat.
Met PHP 8.2 en 9.0 wordt het opnieuw leuk: dan worden dynamic properties verboden, dus kunnen we veel WordPress script kiddies verwachten die "om onverklaarbare redenen" ineens properties in classes missen.
Voor die "onverklaarbare redenen" kun je dan gemakshalve de schuld bij PHP leggen, maar moet je het eerlijkheidshalve bij je eigen gemakzucht zoeken: had nou maar een paar unit tests geschreven die de werking van je eigen code verklaren...
Ik ben helaas echt een amateur op het gebied van php maar ik heb toch geprobeerd om een werkende website te bouwen.
De website waar het over gaat heb ik in 2008 gebouwd en in 2015 omgezet naar html5.
Afgelopen half jaar heb ik de website volledig nieuw gebouwd met de geldende 7.* versie. De oude website moest ook nog blijven werken en de error's die had, hadden geen invloed op de algehele werking gelukkig na wat kleine aanpassingen.
Nu is de oude website verleden tijd en wil overstappen naar versie 8 en de website loopt vast. Ondanks dat ik de error afhandeling bovenaan het script heb staan, zie ik bij het openen van de pagina enkel een wit scherm. Ik heb dus echt geen idee wat er fout gaat.
Ik heb nu Visual Studio Code gedownload want daar zit een debug optie in verwerkt, nu moet ik alleen nog Apache installeren omdat hij een error geeft en niet weet wat te doen.
Eigenlijk had ik de hoop dat er een tool beschikbaar is waarin de code kan inladen en advies, veranderingen en fouten terug zie. Dit is eigenlijk de grootste vraag want zoeken in de lijst aan veranderingen overzie ik niet omdat ik maar 4% aan php code ken en hanteer.
Ja, en na enig zoeken kwam ik het tegen maar de log bestanden zijn leeg of niet te verwerken.
En ik had al enige moeite gedaan maar niet aan gedacht om dat via Google te doen. Heb de gehele website afgestruind van Strato maar kon niks vinden via hun eigen zoekfunctie.
Als de pagina leeg is, is de HTML-broncode dat ook? Of zie je kenmerken van je site?
En wat als je in .htaccess je eigen error_ log defineert? Als deze geen errors aangeven zal er iets anders mis zijn in je script. Dan zul je het probleem moeten isoleren.