Advanced Model Relations for CodeIgniter 4
Learn how to efficiently manage database relationships in CodeIgniter 4 with eager loading, lazy loading, and advanced relation patterns.
Learn how to efficiently manage database relationships in CodeIgniter 4 with eager loading, lazy loading, and advanced relation patterns.
How should modules manage their external dependencies? The answer isn’t purely technical - it depends on who’s installing them. This post explores the real-world trade-offs between Composer-managed, developer-friendly modules and self-contained, user-friendly packages.
Updating modules sounds simple - until users skip versions. Suddenly migrations break, tables are missing, and update logic becomes a headache. See how a lightweight UpdateManifest can turn chaotic upgrades into a predictable, controlled process.
A look behind the scenes of implementing deferred writes in the CodeIgniter 4 Settings package: how batching write operations improves performance, and the subtle database portability issue caused by NULL values in unique constraints.
While CodeIgniter 4 Settings includes a database-backed handler, I wanted a file-based option that’s lightweight, fast, and safe for production use. I’ll walk through the challenges of handling concurrency, file locking, and caching, and explain the design choices behind the new FileHandler.