← Tilbage til versioner
PHP 7.2
Object typehint, parameter type widening, Sodium extension og trailing commas
📖 Om PHP 7.2
PHP 7.2 fokuserede på at polere type systemet og forbedre sikkerhed med vigtige nye features. Object typehint fyldte et stort hul i type systemet ved at tillade generiske objekt-typer når præcis interface/class er ukendt eller ligegyldig. Sodium extension blev en core extension hvilket gav alle PHP applikationer adgang til moderne, sikker kryptografi uden ekstra dependencies. Argon2 password hashing blev standarden for moderne password sikkerhed. Parameter type widening var vigtigt for Liskov Substitution Principle i arv. Forbedrede TLS defaults gjorde HTTPS connections mere sikre out of the box.
🎯 Nye Features
- ✓Object Type Hint - Generisk typehint for alle objekter når præcis type er ukendt
- ✓Parameter Type Widening - Override metoder kan fjerne type hints fra parameters
- ✓Sodium Extension - Moderne kryptografi library bliver core extension
- ✓Trailing Commas in Grouped Namespaces - Tilføj trailing comma i use statements
- ✓Abstract Method Overriding - Child classes kan udvide abstrakte metoder fra traits
- ✓Argon2 Password Hashing - Moderne password_hash() algoritme som alternativ til bcrypt
- ✓Extended String Types for PDO - Nye PDO::PARAM_STR_* konstanter for character sets
- ✓Additional Emulated Prepares Debugging - PDO::ATTR_EMULATE_PREPARES debugging info
- ✓Convert Numeric Keys in Object/Array Casts - Konsistent håndtering af numeric keys
- ✓HashContext as Object - password_hash() bruger nu objekter i stedet for resources
- ✓Improved TLS Defaults - Bedre SSL/TLS sikkerhed med moderne cipher defaults
⚡ Performance Forbedringer
- ↗3-5% generel performance forbedring over PHP 7.1
- ↗Optimeret object type checking i runtime
- ↗Hurtigere Sodium operationer sammenlignet med OpenSSL equivalents
- ↗Reduceret memory overhead i HashContext implementering
⚠️ Breaking Changes
- !count() på non-countable types genererer nu warning i stedet for at returnere 1
- !get_class() uden argument i trait context thrower nu fejl
- !each() function er deprecated - brug foreach i stedet
- !__autoload() er deprecated - brug spl_autoload_register() i stedet
- !create_function() er deprecated - brug anonymous functions i stedet
- !parse_str() uden anden parameter er deprecated - brug output array
💡 Migration Tips
- →Brug object typehint til generiske factory patterns og containers
- →Migrer fra mcrypt til Sodium extension for al kryptografi
- →Tilføj count checks før count() calls på usikre variable typer
- →Erstat each() loops med foreach for bedre performance og læsbarhed
- →Opdater password_hash() til at bruge PASSWORD_ARGON2I for ny kode
- →Test at autoloading virker efter fjernelse af __autoload()
🔄 Upgrade Path
PHP 7.1
→PHP 7.2
→PHP 7.3
ℹ️ Quick Info
Release Date
30. November 2017
Status
End of Life
End of Life
30. November 2020