Compatibilité
Ce qui est vrai aujourd'hui. Aucune date n'est promise pour le reste.
Les familles tournent en PHP nu
Le cœur d'une famille ne requiert ni Symfony, ni Doctrine, ni Twig :
seulement des bibliothèques autonomes (symfony/http-client-contracts, et
pour un fournisseur qui appelle une API, symfony/http-client, qui est une
bibliothèque comme une autre et accepte toujours un client passé de
l'extérieur). Son registre se monte à la main :
$registry = new Registry([new PayPalGatewayFactory(HttpClient::create())], [
'paypal' => ['factory' => 'paypal', 'options' => ['client_id' => $id, 'secret' => $secret]],
]);
Cela vaut dans un script, une application Laravel, Symfony, ou autre. Le
pont Symfony de chaque famille est dans son paquet, sous Bridge/Symfony,
et ses dépendances ne sont pas requises : rien n'en est chargé ailleurs.
La preuve : chaque famille a un test sans cadre, Tests/BareTest.php,
qui monte son registre à la main et vérifie qu'aucune classe d'un cadre
n'est chargée.
Le cœur tourne sous Symfony et sous Laravel
Depuis la 4.0, omnisense/omnibase ne requiert que sa fondation, sans
cadre. Le cadre vient par un pont :
- Symfony :
omnibridge/symfonyapporte les paquets du cadre et inscrit les contrats du cœur sur les services de Symfony ; le bundle du cœur refuse de démarrer sans lui. - Laravel :
omnibridge/laravelfait de même sur le conteneur de Laravel, et lit les routes de l'application dans les mêmes actions (#[Route]). - Doctrine et Twig sont des ponts à part (
omnibridge/doctrine,omnibridge/twig) : ni l'un ni l'autre n'est une part de Symfony.
Les structures préparées omnibase/* sont, aujourd'hui, des bundles
Symfony sur le cœur ; chacune passe son métier à la racine de son paquet
quand elle est reprise.
L'hébergement statique
Les pages publiques d'une application peuvent être exportées par
omnibridge/static et servies sans PHP. Les pages qui ont besoin d'un
serveur — se connecter, un formulaire envoyé, un paiement, une réponse
propre à un visiteur — restent sur l'hôte dynamique, et l'export dit
lesquelles.