Releaser & uppdateringar
En översikt av förändringar i Radix. För fullständig historik och taggar/versioner, se GitHub‑releaser.
v1.3.7 E-postblockering för kontaktformulär
App
Vi har lagt till stöd för att manuellt blockera e-postadresser från att skicka meddelanden via kontaktformuläret.
Moderatorer och administratörer kan nu hantera en blocklista i administrationsgränssnittet. Om ett meddelande skickas från en blockerad e-postadress stoppas utskicket, samtidigt som avsändaren får samma neutrala bekräftelse som vanligt.
Innehåller
Ny blocklista för e-postadresser
Adminvy för att lista, söka och ta bort blockerade adresser
Formulär för att lägga till ny blockerad e-postadress med valfri anledning
Koppling till användaren som skapade blockeringen
Sökstöd i administrationsvyn
Bekräftelsemodal vid borttagning
Kontaktformuläret kontrollerar blocklistan innan mail skickas
Funktionen är scaffold-anpassad och fungerar även om adminmodulen inte är installerad
Syfte
Detta ger ett extra skyddslager mot spam utöver befintligt honeypot-skydd. Funktionen är särskilt användbar när en spamadress har lyckats ta sig igenom formulärskyddet och behöver stoppas manuellt framöver.
Moderatorer och administratörer kan nu hantera en blocklista i administrationsgränssnittet. Om ett meddelande skickas från en blockerad e-postadress stoppas utskicket, samtidigt som avsändaren får samma neutrala bekräftelse som vanligt.
Innehåller
Ny blocklista för e-postadresser
Adminvy för att lista, söka och ta bort blockerade adresser
Formulär för att lägga till ny blockerad e-postadress med valfri anledning
Koppling till användaren som skapade blockeringen
Sökstöd i administrationsvyn
Bekräftelsemodal vid borttagning
Kontaktformuläret kontrollerar blocklistan innan mail skickas
Funktionen är scaffold-anpassad och fungerar även om adminmodulen inte är installerad
Syfte
Detta ger ett extra skyddslager mot spam utöver befintligt honeypot-skydd. Funktionen är särskilt användbar när en spamadress har lyckats ta sig igenom formulärskyddet och behöver stoppas manuellt framöver.
v1.3.6 Fix CI-körningen
App
Fixar CI-körningen för schemalagd Infection genom att komplettera den genererade .env-filen
med saknade miljövariablerför geolocation och sessionscookies. Detta gör att appens env-
validering passerar innan scaffolds installeras i GitHub Actions.
med saknade miljövariablerför geolocation och sessionscookies. Detta gör att appens env-
validering passerar innan scaffolds installeras i GitHub Actions.
v1.2.1 Underhåll
Framework
Uppdaterat GitHub Actions workflows för Node.js 24 kompatibilitet.
Uppdaterat actions/checkout från v4 to v5.
Uppdaterat actions/upload-artifact från v4 till v5.
Uppdaterat actions/checkout från v4 to v5.
Uppdaterat actions/upload-artifact från v4 till v5.
v1.3.5 Fix: stabilisera mobilpaginering
App
Stabilisera mobilpaginering
- Förhindrar hopp/blink vid pagination på mobil när sökfält är fokuserat
- Behåller tidigare layout och horisontell scroll för många sidor
- Bevarar temastyrda pager-färger via CSS-variabler
- Förhindrar hopp/blink vid pagination på mobil när sökfält är fokuserat
- Behåller tidigare layout och horisontell scroll för många sidor
- Bevarar temastyrda pager-färger via CSS-variabler
v1.3.4 Updatering Radix App till Radix Framework v1.2.0.
App
Uppdaterat
Uppdaterat mattablues/radix-framework till ^1.2.
Synkat starter-applikationen med ramverkets förbättrade GeoLocator-stöd.
Uppdaterat Composer-låsningen så nya installationer använder Radix Framework 1.2.x.
GeoLocator
Appen använder nu ramverkets förbättrade GeoLocator-konfiguration.
Stöd för .env-styrning via:
GEOLOCATOR_ENABLED
GEOLOCATOR_BASE_URL
GEOLOCATOR_TIMEOUT
LOCATOR_COUNTRY
LOCATOR_CITY
Säkerhet
Synkad med ramverkets förbättringar kring security headers och säkrare standardinställningar.
Fortsatt stöd för sessionsinställningar via .env.
Notering
Detta är en minor release inom 1.x-serien och är avsedd att vara bakåtkompatibel.
Uppdaterat mattablues/radix-framework till ^1.2.
Synkat starter-applikationen med ramverkets förbättrade GeoLocator-stöd.
Uppdaterat Composer-låsningen så nya installationer använder Radix Framework 1.2.x.
GeoLocator
Appen använder nu ramverkets förbättrade GeoLocator-konfiguration.
Stöd för .env-styrning via:
GEOLOCATOR_ENABLED
GEOLOCATOR_BASE_URL
GEOLOCATOR_TIMEOUT
LOCATOR_COUNTRY
LOCATOR_CITY
Säkerhet
Synkad med ramverkets förbättringar kring security headers och säkrare standardinställningar.
Fortsatt stöd för sessionsinställningar via .env.
Notering
Detta är en minor release inom 1.x-serien och är avsedd att vara bakåtkompatibel.
v1.2.0 Förbättrad säkerhet
Framework
Den här releasen fokuserar på förbättrad säkerhet, stabilare miljökonfiguration och hårdare testtäckning.
Nytt och förbättrat
Återställt och förbättrat stöd för .env-styrning i GeoLocator.
GeoLocator kan nu läsa:
GEOLOCATOR_BASE_URL
GEOLOCATOR_TIMEOUT
Lagt till timeout-stöd för HTTP-anrop i GeoLocator.
Förbättrad hantering av ogiltiga eller tomma miljövärden.
Konstruktorargument i GeoLocator prioriteras före .env-värden.
Förbättrad felhantering vid ogiltiga API-svar från geolocation-tjänsten.
Förbättrad JSON-hantering i felmeddelanden från GeoLocator.
Säkerhet
Förbättringar kring security headers.
Hårdare skydd och testning runt säkerhetsrelaterade standardvärden.
Förbättrad hantering av sessionssäkerhet via miljövariabler, inklusive cookie-inställningar som HttpOnly, SameSite och Secure.
Tester och kvalitet
GeoLocator-testerna använder nu fake/spy istället för riktiga externa HTTP-anrop.
Mutationstester har stärkts för GeoLocator.
Fler tester för edge cases kring .env, timeout och API-fel.
PHPStan-anpassningar för striktare typkontroll.
Stabilare testsvit utan beroende av externa geolocation-anrop.
För utvecklare
GeoLocator är fortsatt bakåtkompatibel för normal användning:
getLocation() fungerar som tidigare.
getLocation(null) använder fortsatt $_SERVER['REMOTE_ADDR'].
get($key) fungerar som tidigare.
Applikationer kan konfigurera geolocation via .env utan att behöva ändra kod.
Nytt och förbättrat
Återställt och förbättrat stöd för .env-styrning i GeoLocator.
GeoLocator kan nu läsa:
GEOLOCATOR_BASE_URL
GEOLOCATOR_TIMEOUT
Lagt till timeout-stöd för HTTP-anrop i GeoLocator.
Förbättrad hantering av ogiltiga eller tomma miljövärden.
Konstruktorargument i GeoLocator prioriteras före .env-värden.
Förbättrad felhantering vid ogiltiga API-svar från geolocation-tjänsten.
Förbättrad JSON-hantering i felmeddelanden från GeoLocator.
Säkerhet
Förbättringar kring security headers.
Hårdare skydd och testning runt säkerhetsrelaterade standardvärden.
Förbättrad hantering av sessionssäkerhet via miljövariabler, inklusive cookie-inställningar som HttpOnly, SameSite och Secure.
Tester och kvalitet
GeoLocator-testerna använder nu fake/spy istället för riktiga externa HTTP-anrop.
Mutationstester har stärkts för GeoLocator.
Fler tester för edge cases kring .env, timeout och API-fel.
PHPStan-anpassningar för striktare typkontroll.
Stabilare testsvit utan beroende av externa geolocation-anrop.
För utvecklare
GeoLocator är fortsatt bakåtkompatibel för normal användning:
getLocation() fungerar som tidigare.
getLocation(null) använder fortsatt $_SERVER['REMOTE_ADDR'].
get($key) fungerar som tidigare.
Applikationer kan konfigurera geolocation via .env utan att behöva ändra kod.
v1.1.9 Säkerhetsuppdatering
Framework
Den här releasen härdar PHP-session cookies och gör cookie-säkerheten konfigurerbar via .env.
Nytt
Session cookies sätts nu med säkrare defaults.
Stöd för konfigurerbar Secure, HttpOnly och SameSite.
SameSite=None kräver SESSION_COOKIE_SECURE=true.
EnvValidator validerar nya session-cookie-inställningar.
Förbättrad hantering vid session destroy/delete.
Lägg till i befintliga projekt
SESSION_COOKIE_SECURE=auto SESSION_COOKIE_HTTPONLY=true SESSION_COOKIE_SAMESITE=Lax
För production rekommenderas
SESSION_COOKIE_SECURE=true SESSION_COOKIE_HTTPONLY=true SESSION_COOKIE_SAMESITE=Lax
CSP-rekommendation
Komplettera applikationens CSP med:
base-uri: self object-src: none
I PHP-konfigurationen motsvarar det:
'base-uri' => ["'self'"] 'object-src' => ["'none'"]
För API-profiler kan en striktare variant användas:
'base-uri' => ["'none'"] 'object-src' => ["'none'"]
Bakåtkompatibilitet
Session-hanteringen har säkra defaults om miljövariabler saknas, men applikationer som kör EnvValidator måste lägga till de nya SESSION_COOKIE_* variablerna i sin .env.
Teststatus
PHPUnit: grönt
PHPStan: grönt
Infection: 5019/5019 mutanter dödade
Mutation Code Coverage: 100%
Covered Code MSI: 100%
Nytt
Session cookies sätts nu med säkrare defaults.
Stöd för konfigurerbar Secure, HttpOnly och SameSite.
SameSite=None kräver SESSION_COOKIE_SECURE=true.
EnvValidator validerar nya session-cookie-inställningar.
Förbättrad hantering vid session destroy/delete.
Lägg till i befintliga projekt
SESSION_COOKIE_SECURE=auto SESSION_COOKIE_HTTPONLY=true SESSION_COOKIE_SAMESITE=Lax
För production rekommenderas
SESSION_COOKIE_SECURE=true SESSION_COOKIE_HTTPONLY=true SESSION_COOKIE_SAMESITE=Lax
CSP-rekommendation
Komplettera applikationens CSP med:
base-uri: self object-src: none
I PHP-konfigurationen motsvarar det:
'base-uri' => ["'self'"] 'object-src' => ["'none'"]
För API-profiler kan en striktare variant användas:
'base-uri' => ["'none'"] 'object-src' => ["'none'"]
Bakåtkompatibilitet
Session-hanteringen har säkra defaults om miljövariabler saknas, men applikationer som kör EnvValidator måste lägga till de nya SESSION_COOKIE_* variablerna i sin .env.
Teststatus
PHPUnit: grönt
PHPStan: grönt
Infection: 5019/5019 mutanter dödade
Mutation Code Coverage: 100%
Covered Code MSI: 100%
v1.3.3 Uppdatering för användning av radix-framework v1.1.8
App
Den här releasen förbättrar felhanteringen i Radix Framework genom att logga HTTP-undantag med mer korrekt allvarlighetsgrad.
Tidigare loggades nästan alla exceptions som error, även normala klientfel som till exempel 404 PageNotFoundException. Det kunde skapa onödigt brus i produktionsloggarna, särskilt från botar och scanners som försöker nå vanliga paths som inte finns.
Tidigare loggades nästan alla exceptions som error, även normala klientfel som till exempel 404 PageNotFoundException. Det kunde skapa onödigt brus i produktionsloggarna, särskilt från botar och scanners som försöker nå vanliga paths som inte finns.
v1.1.8 Fixad loggnivå för HTTP-undantag
Framework
Den här releasen förbättrar felhanteringen i Radix Framework genom att logga HTTP-undantag med mer korrekt allvarlighetsgrad.
Tidigare loggades nästan alla exceptions som error, även normala klientfel som till exempel 404 PageNotFoundException. Det kunde skapa onödigt brus i produktionsloggarna, särskilt från botar och scanners som försöker nå vanliga paths som inte finns.
Nytt beteende:
Serverfel, 5xx, loggas som error.
Klientfel, 4xx, loggas inte längre som error.
404 loggas inte som standard.
Andra 4xx-fel, exempelvis 400, 403 och 405, loggas som warning.
HTTP-svar och API-svar påverkas inte.
Det innebär att exempelvis en saknad route fortfarande ger 404, men inte längre skräpar ner error-loggen som ett serverfel.
Oförändrat beteende
Ändringen påverkar inte:
HTTP-statuskoder
felvyer
JSON/API-felsvar
publik API-yta
PageNotFoundException
vanliga serverfel/runtime exceptions
Riktiga serverfel fortsätter att loggas som error med stacktrace.
Kvalitetssäkring
Ändringen är verifierad med:
PHPUnit
PHPStan
Infection mutation testing
Tidigare loggades nästan alla exceptions som error, även normala klientfel som till exempel 404 PageNotFoundException. Det kunde skapa onödigt brus i produktionsloggarna, särskilt från botar och scanners som försöker nå vanliga paths som inte finns.
Nytt beteende:
Serverfel, 5xx, loggas som error.
Klientfel, 4xx, loggas inte längre som error.
404 loggas inte som standard.
Andra 4xx-fel, exempelvis 400, 403 och 405, loggas som warning.
HTTP-svar och API-svar påverkas inte.
Det innebär att exempelvis en saknad route fortfarande ger 404, men inte längre skräpar ner error-loggen som ett serverfel.
Oförändrat beteende
Ändringen påverkar inte:
HTTP-statuskoder
felvyer
JSON/API-felsvar
publik API-yta
PageNotFoundException
vanliga serverfel/runtime exceptions
Riktiga serverfel fortsätter att loggas som error med stacktrace.
Kvalitetssäkring
Ändringen är verifierad med:
PHPUnit
PHPStan
Infection mutation testing
v1.3.2 Fix location middleware
App
Ändrat location middleware till att både controllera country och city.
Saknar du en detalj här? Se GitHub‑releaser för komplett historik.