PHPackages                             jardisport/dotenv - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. jardisport/dotenv

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

jardisport/dotenv
=================

Environment loader interface with public and private loading modes

v1.0.0(2mo ago)0244↓50%1proprietaryMakefilePHP &gt;=8.2CI failing

Since Mar 17Pushed 2mo agoCompare

[ Source](https://github.com/jardisPort/dotenv)[ Packagist](https://packagist.org/packages/jardisport/dotenv)[ Docs](https://github.com/jardisPort/dotenv)[ RSS](/packages/jardisport-dotenv/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (6)Used By (1)

Jardis DotEnv Port
==================

[](#jardis-dotenv-port)

[![Build Status](https://github.com/jardisPort/dotenv/actions/workflows/ci.yml/badge.svg)](https://github.com/jardisPort/dotenv/actions/workflows/ci.yml/badge.svg)[![License: PolyForm Shield](https://camo.githubusercontent.com/d8fb46c82be4c5312bf3e372ac734dfdf6a8b328e9c2b2856af671adbb0600a5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d506f6c79466f726d253230536869656c642d626c75652e737667)](LICENSE.md)[![PHP Version](https://camo.githubusercontent.com/a68b290dcc313d698dc138a1111aa83eee2f143605449d7e8b5416ea6f88558f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253345253344382e322d3737374242342e737667)](https://www.php.net/)[![PHPStan Level](https://camo.githubusercontent.com/c51bda247654363d3e30bc352674dd761a9557803a14af0226eb411d6dc0006b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d4c6576656c253230382d627269676874677265656e2e737667)](phpstan.neon)[![PSR-12](https://camo.githubusercontent.com/34b10db0caa29bacd49bda5c437a8de95385f036f3230b31fa605326e18da22c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f64652532305374796c652d5053522d2d31322d626c75652e737667)](phpcs.xml)

> Part of the **[Jardis Business Platform](https://jardis.io)** — Enterprise-grade PHP components for Domain-Driven Design

Environment loader contract with two loading modes — public (writes to `$_ENV`) and private (returns an isolated array). Type-hint against this interface to swap environment loading strategies without affecting your application code. The distinction between public and private loading gives you precise control over which values enter the global environment.

---

Interfaces
----------

[](#interfaces)

### **DotEnvInterface**

[](#dotenvinterface)

`JardisPort\DotEnv\DotEnvInterface`

A two-mode contract for loading `.env` files. Public loading populates the system environment; private loading returns an isolated array that never touches global state.

MethodSignatureDescription`loadPublic``loadPublic(string $pathToEnvFiles): void`Loads environment variables into `$_ENV` and the system environment. Throws `Exception` on failure.`loadPrivate``loadPrivate(string $pathToEnvFiles): mixed`Loads and returns environment variables as an array without writing to global state. Returns `null` if no variables are found. Throws `Exception` on failure.---

Installation
------------

[](#installation)

```
composer require jardisport/dotenv
```

Usage
-----

[](#usage)

```
use JardisPort\DotEnv\DotEnvInterface;

// Type-hint against the interface — not against any specific implementation
class AppBootstrap
{
    public function __construct(
        private readonly DotEnvInterface $dotenv,
    ) {}

    public function boot(string $configPath): void
    {
        // Publicly loaded values become available via getenv() and $_ENV
        $this->dotenv->loadPublic($configPath);
    }
}

// Private loading — values stay isolated, never touch global state
class ServiceContainer
{
    public function __construct(
        private readonly DotEnvInterface $dotenv,
    ) {}

    public function loadSecrets(string $secretsPath): array
    {
        return $this->dotenv->loadPrivate($secretsPath) ?? [];
    }
}
```

Implemented by
--------------

[](#implemented-by)

- **[jardissupport/dotenv](https://github.com/jardisSupport/dotenv)** — `.env` file parser with support for variable interpolation, type casting, and secret resolver integration

Documentation
-------------

[](#documentation)

Full documentation, guides, and API reference:

**[jardis.io/docs/port/dotenv](https://jardis.io/docs/port/dotenv)**

License
-------

[](#license)

This package is licensed under the [PolyForm Shield License 1.0.0](LICENSE.md). Free for all use except building competing frameworks or developer tooling.

---

**[Jardis](https://jardis.io)** · [Documentation](https://jardis.io/docs) · [Headgent](https://headgent.com)

###  Health Score

43

—

FairBetter than 91% of packages

Maintenance88

Actively maintained with recent releases

Popularity16

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~20 days

Total

2

Last Release

61d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e07a1b668e9e01ee6d1b85de7b3be1c2513f68aae9494b2011d1592104d5daa0?d=identicon)[jardis](/maintainers/jardis)

---

Top Contributors

[![Headgent](https://avatars.githubusercontent.com/u/245725954?v=4)](https://github.com/Headgent "Headgent (1 commits)")

---

Tags

interfacesdotenvdddHeadgentJardisPort

###  Code Quality

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/jardisport-dotenv/health.svg)

```
[![Health](https://phpackages.com/badges/jardisport-dotenv/health.svg)](https://phpackages.com/packages/jardisport-dotenv)
```

###  Alternatives

[vlucas/phpdotenv

Loads environment variables from `.env` to `getenv()`, `$\_ENV` and `$\_SERVER` automagically.

13.5k602.4M5.4k](/packages/vlucas-phpdotenv)[symfony/event-dispatcher-contracts

Generic abstractions related to dispatching event

3.4k756.5M424](/packages/symfony-event-dispatcher-contracts)[symfony/service-contracts

Generic abstractions related to writing services

2.6k860.1M360](/packages/symfony-service-contracts)[symfony/dotenv

Registers environment variables from a .env file

3.8k226.7M2.3k](/packages/symfony-dotenv)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
