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; // 500000000Installation
composer require joetjen/cooper