Project:
maatify/bootstrapMaintainer: Mohamed Abdulalim (megyptm) Organization: Maatify.dev License: MIT
- Removed legacy environment variable restoration logic from
EnvironmentLoader.- Deleted the immutability block that re-applied original
$_ENVvalues after loading. - Simplified the loader flow to avoid unintended overrides and ensure consistent variable precedence.
- Deleted the immutability block that re-applied original
- Environment loading now behaves predictably and respects the current process environment without forced rollback.
- Codebase cleanup for clarity and reduced side-effects.
Release 1.0.3 (fix missing VERSION update)
A major improvement ensuring complete safety and determinism in environment loading.
-
Pre-load snapshot system Captures all
$_ENV+putenv()variables before loading.env, ensuring no value is lost. -
Post-load variable restoration Re-assigns all pre-existing variables, preventing
.envfiles from overriding runtime, CI, or PHPUnit test variables. -
Full isolation for test environments Guarantees that any env variables injected by PHPUnit (
putenv,$_ENV) remain untouched.
- Environment handling is now predictable, deterministic, and override-proof.
- Perfect consistency across Maatify libraries (
data-adapters,rate-limiter, etc.). - Strengthened compatibility with CI/CD pipelines and Dockerized environments.
- Updated integration tests confirm that
.envloading never overrides runtime or test variables. - Verified support for parallel test runners and isolated env contexts.
- Updated requirement:
"maatify/common": "^1.0" - Internal helpers refactored for compatibility with latest
maatify/common.
No functional or breaking changes in this release.
The foundational version that introduced the full bootstrap system:
Bootstrap::init()unified entry point- Smart
.envloader with priority:.env.local→.env.testing→.env→.env.example - Immutable Dotenv mode
- Automatic timezone setup
- Diagnostics + Safe Mode
- Helpers (EnvHelper, PathHelper)
- Full CI & Docker integration
- Complete documentation & PHPUnit coverage
| Version | Purpose | Stability |
|---|---|---|
| 1.0.2 | No override env loader + test safety | 🟢 Stable |
| 1.0.1 | Update dependencies | 🟢 Stable |
| 1.0.0 | Initial public release | 🟢 Stable |
- Initialized project structure and Composer package.
- Implemented PSR-4 autoloading for
Maatify\Bootstrap\. - Added
.env.exampleand base PHPUnit configuration. - Introduced
EnvironmentLoaderwith timezone fallback toAfrica/Cairo.
- Added main
Bootstrap::init()entry point. - Integrated environment loader and error handler.
- Ensured idempotent initialization and runtime safety.
- Added
EnvHelper(cached environment variable access). - Added
PathHelper(consistent path resolution). - Integrated with
maatify/commonutilities.
- Verified multi-library boot order with
maatify/data-adapters,maatify/rate-limiter, andmaatify/security-guard. - Ensured environment variables load only once per runtime.
- Added CI integration tests for shared initialization.
- Implemented
BootstrapDiagnosticsclass with environment, timezone, and error-handler validation. - Added Safe Mode detection when
.env.localor.env.testingexist under production environment. - Integrated PSR-3 logging for diagnostic reporting.
- Updated
EnvironmentLoaderto include.env.exampleas fallback. - Added complete environment-file priority documentation.
- All PHPUnit tests passing across environments.
- Add GitHub Actions workflow for automated CI/CD.
- Add Dockerfile + docker-compose for local bootstrap testing.
- Auto-generate and validate documentation during CI.
- Tag release v1.0.0 and publish to Packagist.