| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-09-27 | 3.9 kB | |
| v1.9.0 -- Raja Ampat source code.tar.gz | 2026-09-27 | 9.6 MB | |
| v1.9.0 -- Raja Ampat source code.zip | 2026-09-27 | 10.9 MB | |
| Totals: 3 Items | 20.5 MB | 0 | |
[1.9.0] - 2026-09-27
Added
- Admin locale catalog with native labels: New
admin_locales_catalog()function returns a map oflang_code => native namewith database-driven catalog synchronization and static request caching; falls back to seven supported languages when no DB connection is available - Native label select helpers: New
admin_locale_select()helper renders a native-name locale<select>with full XSS-safe attribute and label escaping; legacy locales not in the catalog are appended as uppercased-code options getImageRadioButton()andcreatePageMedia()in PageService: Delegated toMediaDaoso controllers never build DAOs themselves; featured-image radio list for the page formboundwize/structarmeddev dependency: Structural analysis tool added to catch array-shape mismatches and prevent silent data corruption at build timestructarmedComposer script: Newcomposer structarmedcommand for structural integrity analysis during quality checks
Changed
- Dependency injection in services:
ExportServicenow requiresUserDaoconstructor parameter;MigrationServicenow acceptsUserDaofor import author lookups;PageServiceacceptsMediaDao;PostServiceaccepts optionalTopicDaoandMediaDaoparameters - Controller refactoring:
PostControllerandPageControllerno longer hold directTopicDao/MediaDaoreferences; they delegate all DAO operations throughPostServiceandPageServicerespectively - Class finality:
PostController,PageService, andMigrationServicemarked asfinalto prevent inheritance and enforce composition-based design APP_FILE_SIZEandMAX_SIZEconstants: Numeric literals updated to underscore-separated notation for improved readability- PHPStan level-1 compatibility: Fixed
empty()variable false-positive insanitize-locale.php
Fixed
- CSRF token persistence: Submitted CSRF token is now preserved across policy saves so POST requests don't bounce on validation errors
- PHPStan level-1 analysis: Resolved
empty()variable analysis error insanitize-locale.php
Security
boundwize/structarmed: Structural integrity analysis added to the build pipeline to detect array-shape mismatches and prevent silent data corruptioncomposer auditintegration: Security audit now included in thecomposer buildquality script
Deprecated
- Direct DAO access in controllers: Controllers should now delegate all data access through service layers rather than instantiating DAOs directly
Notes
Feature release with admin locale catalog improvements, service-layer refactoring toward dependency injection, and structural analysis tooling. PostController, PageService, and MigrationService are now final to enforce composition-based design. ExportService and MigrationService now require UserDao injection. PostService accepts optional TopicDao and MediaDao for backward compatibility. 67 commits since v1.8.1 including 40 test commits, 5 fix commits, 2 feat commits, 3 refactor commits, 5 CI commits, and 1 docs commit.
Codename
Raja Ampat – Honoring Raja Ampat (Four Kings), the globally renowned marine biodiversity hotspot in West Papua, Indonesia, home to 75% of all known coral species and critically endangered marine species including the whale shark (Rhincodon typus), manta ray (Mobula alfredi), and the endangered hawksbill turtle (Eretmochelys imbricata). With coral reef systems facing unprecedented bleaching events and overfishing pressures, Raja Ampat's endemic marine species represent some of the most threatened biodiversity on Earth.