Omnisense : l’écosystème Omni et sa documentation
Un préfixe, plusieurs familles 246 paquets · 25 familles
Le cœur des sites, et des structures toutes prêtes, facultatives.
A — Le socle
Le cœur, les familles, les ponts
Ce que tout site peut prendre : omnibase, le cœur des sites ; les familles, un contrat par domaine, que leurs fournisseurs remplissent service par service ; les ponts, qui relient le tout à un cadre. Les fournisseurs ne sont pas listés ici : ils se cherchent.
omnisense/omnibase
Le cœur dont tout site part : comptes et sécurité, back-office, traductions, images, formulaires.
1 paquet
2
Familles
omnisense/omni<domaine>
Le contrat d’un domaine - colis, paiements, registres publics, données scientifiques - en PHP nu, quel que soit le service derrière. Sous omnisense/, ou encore glitchr/ pour celles qui n’ont pas déménagé.
omnisense/omnibusomnisense/omnitrade+ 23
25 paquets · 180 fournisseurs à chercher
3
Ponts
omnibridge/<cible>
La colle entre le socle et un cadre, un stockage ou une couche de rendu. Il ne connaît aucune structure : un pont les sert toutes.
omnibridge/composeromnibridge/doctrineomnibridge/eloquentomnibridge/laravel+ 5
9 paquets
Un site prend le socle, les familles qu’il appelle et les ponts de son cadre. Les structures préparées s’ajoutent si elles font gagner du temps : rien dans le socle ni dans les familles n’en dépend. S’y ajoutent 2 bibliothèques JavaScript.
B — Les familles
Un contrat par domaine, un paquet par service
Une famille écrit une fois ce qu’un domaine demande aux services du dehors - tarifs et étiquettes pour les colis, paiements et remboursements pour le commerce - et chaque fournisseur le remplit pour un service. Changer de service, c’est changer une ligne de configuration.
- Omnibus Expédier un colis, quel que soit le transporteur. 23 fournisseurs
- Omnitrade Encaisser et vendre, quel que soit le prestataire. 6 fournisseurs
- Omnistate Demander aux registres publics ce qu’ils savent. 8 fournisseurs
- Omnibank Lire un compte en banque. 4 fournisseurs
- Omnisong Faire écouter le catalogue d’un musicien. 2 fournisseurs
- Omnipost Publier sur les réseaux sociaux, et y partager une page sans leurs scripts. 2 fournisseurs
- Omnifood Recevoir les commandes et les réservations d’un restaurant. 5 fournisseurs
- Omnischolar Rassembler les publications d’un chercheur. 7 fournisseurs
- Omnilab Lire ce que la science sait d’une chose, ou mesure en un lieu. 56 fournisseurs
- Omnilex Lire les sources du droit. 4 fournisseurs
- Omnimeet Ouvrir une salle de visio et y faire entrer quelqu’un. 2 fournisseurs
- Omnishield Garder un formulaire : captcha, pourriel, adresses connues pour abus. 6 fournisseurs
- Omnisign Faire signer un document. 3 fournisseurs
- Omnibill Transmettre et recevoir une facture électronique. 3 fournisseurs
- Omniauth Faire se connecter, par les facteurs que l’on veut. 4 fournisseurs
- Omnidrive Lire et écrire des fichiers, où qu’ils soient gardés. 8 fournisseurs
- Omnimap Dessiner une carte, quel que soit le fournisseur. 3 fournisseurs
- Omnisearch Chercher, quel que soit le moteur. 1 fournisseur
- Omniplay Mettre un jeu sur les boutiques, et y jouer en ligne. 7 fournisseurs
- Omniticket Lire les billets vendus ailleurs. 5 fournisseurs
- Omnidns Gérer un nom de domaine là où il est enregistré. 4 fournisseurs
- Omnidocs 5 fournisseurs
- Omnifund Lire qui finance un projet. 3 fournisseurs
- Omnireach Lire ce que les outils extérieurs savent de l’audience d’un site. 5 fournisseurs
- Omnireview Lire ce que les clients disent ailleurs. 3 fournisseurs
- Bibliothèques JavaScript Les bibliothèques JavaScript de la maison, sans dépendance. 2 bibliothèques
C — omnibridge
Un pont par cadre, pas un par structure
Le cœur ne connaît aucun cadre : un pont le relie à Symfony, à Laravel, à Doctrine, à Twig, à React — une colle générique qui ne connaît aucune structure. Un autre cadre, c’est un pont de plus, pas la réécriture de chaque structure.
- omnibridge/symfony Conteneur, routage, formulaires, sécurité. Au catalogue
- omnibridge/laravel Les contrats du cœur sur le conteneur de Laravel. Au catalogue
- omnibridge/doctrine Le stockage : Doctrine tient seul. Au catalogue
- omnibridge/twig Le rendu : Twig tient seul. Au catalogue
- omnibridge/react Les pages en composants React, depuis n’importe quel cadre. Au catalogue
- omnibridge/composer L’installation : les stubs et les retouches déclarées du cœur. Au catalogue
- omnibridge/static L’export statique des pages publiques de toute application — ce site. Au catalogue
D — Facultatif Les structures préparées
Une structure toute prête, si elle fait gagner du temps
Une structure toute prête pour un métier — entités, écrans, back-office, traductions, données de démonstration — déjà assemblée sur le socle. Facultative : la prendre pour aller vite, ou écrire la sienne sur le socle et les familles.
omnibase/<métier>
omnibase/adminomnibase/agendaomnibase/blog+ 26
29 structures
Rien dans le socle ni dans les familles n’en dépend. Symfony aujourd’hui, comme le cœur ; toutes se trouvent dans la recherche des paquets.
E — Compatibilité
N’importe quel cadre : les familles en PHP nu, le cœur par ses ponts
Ce qui est vrai aujourd’hui. Aucune date n’est promise pour le reste.
Aujourd’hui Les familles tournent en PHP nu
Le cœur d’une famille omni* ne requiert ni Symfony, ni Doctrine, ni Twig : seulement des bibliothèques autonomes. Son registre se monte à la main, dans un script, une application Laravel ou Symfony. Le pont Symfony est dans le paquet, sous Bridge/Symfony, et rien n’en est chargé ailleurs.
use Omnitrade\PayPal\PayPalGatewayFactory;
use Omnitrade\Registry;
use Symfony\Component\HttpClient\HttpClient;
// No container, no kernel: the registry is built by hand.
$registry = new Registry([new PayPalGatewayFactory(HttpClient::create())], [
'paypal' => ['factory' => 'paypal', 'options' => ['client_id' => $id, 'secret' => $secret]],
]);
$gateway = $registry->get('paypal');
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.
Aujourd’hui omnibase 4 tourne par ses ponts
omnisense/omnibase 4.x ne requiert que sa fondation, sans cadre : Symfony vient par omnibridge/symfony, Laravel par omnibridge/laravel, le stockage et le rendu par omnibridge/doctrine et omnibridge/twig.
Ensuite Les structures préparées suivent
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 (objets, règles, contrats) quand elle est reprise, ses parts de cadre dans des ponts. La colle générique, qui ne connaît aucune structure :
Cette colle, c’est omnibridge, décrit plus haut.
Le détail, et ce qu’il impose à chaque paquet : la page Compatibilité de la documentation.
F — Lire
Chaque paquet a son manuel
Les manuels sont les fichiers Markdown de chaque dépôt, tels qu’ils y sont écrits : une version par branche, un lien vers le fichier pour le corriger.
- paquets au catalogue
- 246
- manuels publiés
- 241
- familles
- 25
Annonces
-
Six nouvelles familles, GitHub Pages, des manuels par série
Le site est publié sur GitHub Pages par omnibridge/static ; omnifund, omnidns, omniticket, omnireach, omnifilm et omnigame entrent au catalogue ; omnidrive gagne quatre fournisseurs ; flowjs 1.5.2 ; le manuel d'omnibase pour 4.x et 3.x côte à côte.
-
omnibridge/static — un export statique pour toute application
La famille omnibridge gagne un exporteur générique — les pages publiques d'une application, rendues à la construction par son propre code, pour tout hébergement statique.
-
Ce site est désormais statique
Guides, actualités, catalogue et manuel de chaque paquet, construits depuis des fichiers et servis sans application côté serveur.