joetjen.net
EN DE
← Alle Bibliotheken
PHP

php-cooper

Lädt CASC-Konfigurationsdateien in native PHP-Werte — der PHP-Port von Cooper, mit der vollständigen Sprache, .env-Schichtung und Datei-Cache.

Absicht

Dieselben Dokumente sollen in einer PHP-Anwendung dasselbe bedeuten wie in einer Elixir-Anwendung. Der Port war zugleich ein Test der Spezifikation: Beim Bau fanden sich Stellen, an denen das Elixir-Original CASC.md widersprach, und sie wurden dort behoben. Wo PHP eigene Gepflogenheiten hat — Exceptions statt Ergebnis-Tupeln, Klassennamen für Module —, folgt der Port ihnen und führt jede Abweichung auf.

Beispiel
use JOetjen\Cooper\Cooper;

$config = Cooper::loadFile('config.casc', ['env' => ['DB_PASSWORD' => 'hunter2']]);

$config['database']['host'];                  // "db.eu-west.internal"
(string) $config['database']['password'];     // "[~~REDACTED~~]"
$config['database']['password']->reveal();    // "hunter2"
$config['database']['timeout']->nanoseconds;  // 500000000
Installation
composer require joetjen/cooper
PHPConfigurationCASC