Aller au contenu
Proposer une modification

Démarrer

L'écosystème Omni est un ensemble de paquets PHP. Il se lit en deux parts : le socle, que toute application peut prendre, et des structures préparées, facultatives.

Part Nom Ce que c'est
Socle : le cœur omnisense/omnibase ce dont un site part : comptes, back-office, traductions, images, formulaires, écrans
Socle : les familles omnisense/omni<domaine> un contrat pour un domaine (colis, paiements, registres…), quel que soit le service qui répond
Socle : les fournisseurs omni<domaine>/<service> un service qui remplit le contrat de sa famille : un paquet par service, à chercher
Socle : les ponts omnibridge/<cible> la colle entre le socle et un cadre, un stockage, une couche de rendu ou un hébergement statique
Facultatif : les structures préparées omnibase/<métier> une structure toute prête pour un métier — entités, écrans, back-office, traductions, données de démonstration — assemblée sur le cœur

Les structures préparées sont facultatives : rien dans le cœur ni dans les familles n'en dépend. Un site en prend une pour aller vite, ou écrit la sienne sur le cœur et les familles.

Une famille et ses fournisseurs ne dépendent pas du cœur : ils s'installent dans n'importe quelle application PHP. Le cœur tourne sous Symfony et sous Laravel par ses ponts (voir Compatibilité).

Installer une famille

Une famille et le fournisseur qui répond — ici le paiement, avec PayPal :

composer require omnisense/omnitrade:1.x-dev omnitrade/paypal:1.x-dev
use Omnitrade\PayPal\PayPalGatewayFactory;
use Omnitrade\Registry;
use Symfony\Component\HttpClient\HttpClient;

$registry = new Registry([new PayPalGatewayFactory(HttpClient::create())], [
    'paypal' => ['factory' => 'paypal', 'options' => ['client_id' => $id, 'secret' => $secret, 'sandbox' => true]],
]);
$gateway = $registry->get('paypal');

Dans Symfony, le bundle de la famille est dans son paquet (Bridge/Symfony) : déclarez-le dans config/bundles.php et ses passerelles sous la clé de la famille (omnitrade:). Le manuel de chaque famille s'ouvre sur l'usage en PHP nu, puis sur Symfony.

Aucun paquet n'a encore de version stable : chacun se requiert à sa branche de développement (1.x-dev), et un projet a besoin de "minimum-stability": "dev" avec "prefer-stable": true (voir Conventions).

Installer le cœur

omnisense/omnibase vient avec son greffon Composer, omnibridge/composer (les stubs et la seule retouche que le cœur déclare), qu'il faut autoriser, et le pont du cadre hôte :

composer config allow-plugins.omnibridge/composer true
composer require omnisense/omnibase:4.x-dev omnibridge/symfony:1.x-dev

Puis, si elle fait gagner du temps, une structure préparée : omnibase/blog, omnibase/marketplace, omnibase/agenda… Chacune a son manuel ; aucune n'est requise.

Lire la suite

  • Architecture : le cœur et l'application, les familles, les ponts, l'export statique.
  • La documentation : un manuel par paquet, lu dans le dossier docs/ de son dépôt à un commit épinglé.
  • La recherche des paquets : chaque paquet par nom, famille ou sorte, et ce que son README dit de sa vérification.
  • Contribuer : corriger une page depuis GitHub.