princip rozhraní a jeho implementace v composeru rubrika: Programování: PHP

9 Taco
položil/-a 28.10.2018

Mám balíček do composeru, který se skládá ze dvou částí. Objektu, který poskytuje určité rozhraní, a pak následně nějaký složitý a hlavně velký kód s určitou implementací.

A rád bych podchytil následující scénáře.

  1. Uživatel chce jen nainstaloval a používat. To znamená do composeru uvede jen název mého balíčku a ono se mu nainstalují obě části.

  2. Uživatel má výhrady vůči té implementace, ale to rozhraní chce použít. Tudíž si napíše vlastní implementaci, a pak by samozřejmě bylo fajn, kdyby se ta moje vůbec nestáhla.

Zatím jsem u dvou řešení, kdy každé je špatné:

Dva balíčky, jeden s rozhraním a druhý s implementací. Když dám implementaci jako závislost, tak se mi vždycky stáhne. Když dám implementaci jako suggest, tak na to uživatel může zapomenout.

Jak na to?

odkaz
7 harrison314
odpověděl/-a 28.10.2018

No predsa dat balicku s implementaciou zavislost na rozhrani.
Ak bude chciet implementaciu stiahne si tu, ak iby rozhranie stiahne si to.

Komentáře

  • Taco : Má představa je spíše: pokud nemá vlastní, stáhne se defaultní. 28.10.2018
  • harrison314 : To nechaj na tom vyvojarovi. 29.10.2018
  • ondrakoupil : Souhlas. Stejně tak jsou řešeny všemožná rozhraní ze standardů PSR (typicky např. psr/log jako rozhraní a monolog jako implementace). Pokud si chce uživatel udělat vlastní implementaci, do composeru dá závislost jen na rozhraní. Pokud chce využít hotovou implementaci, dá tam závislost na balíčku s implementací, a ten má závislost na balíčku s definicí rozhraní, takže se stáhne obojí. Nicméně to, že musí jít o dva oddělené balíčky, to je podle mě nezbytnost. 29.10.2018
  • Taco : OK, díky 29.10.2018

Pro plný přístup na Devel.cz se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.