Download the PHP package webwingscz/skautis-symfony without Composer
On this page you can find all versions of the php package webwingscz/skautis-symfony. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package skautis-symfony
WebwingsSkautisBundle
Symfony bundle pro webové služby skautISu — informačního systému Junáka.
Dává vám typovaný klient nad jejich SOAP API, hotové přihlašování skautISovým účtem a přepínání rolí. A taky režim, ve kterém celá aplikace funguje bez přiděleného AppID, takže se dá vyvíjet dřív, než vám ho správce schválí.
Proč ne skautis/skautis
skautis/skautis je funkční a
běží v produkci — pokud vám vyhovuje jeho tvar, použijte ho. Deklaruje ale
php >=5.6 a celé API jede přes __call, takže statická analýza o něm neví nic
(jejich issue #102). Nemá PSR-3
logování (#70) a integraci má jen
na Nette — skautis/skautis-bundle, na který odkazuje jejich composer.json,
na Packagistu neexistuje.
Tenhle bundle je menší a užší: typované DTO, PSR-3, Symfony DI a security.
Instalace
Bez Symfony Flex zaregistrujte bundle ručně v config/bundles.php:
Konfigurace
Přihlašování
skautIS řeší autentizaci sám. Uživatel odejde na {base_url}/Login/?appid=…,
přihlásí se tam a skautIS pošle POST na adresu, kterou jste u AppID
zaregistrovali — pole skautIS_Token, skautIS_IDRole, skautIS_IDUnit
a skautIS_DateLogout.
Vaše routy musí odpovídat tomu, co máte zaregistrované ve skautISu:
Odhlášení musí proběhnout i na straně skautISu, jinak se příští návštěva přihlásí
sama — přesměrujte na SkautisConfig::logoutUrl($token), skautIS pak vrátí
uživatele na vaši logout_route.
Token platí 30 minut. Bundle ho na pozadí prodlužuje (LoginUpdateRefresh,
nejvýš jednou za refresh_interval) a když vyprší, pošle uživatele na odhlášení
místo toho, aby spadla pětistovka.
Co je k dispozici
| Služba | K čemu |
|---|---|
Api\UserApi |
detail účtu, seznam rolí, přepnutí role, prodloužení přihlášení |
Api\UnitApi |
detail jednotky, podřízené jednotky |
Api\PersonApi |
členové jednotky, detail osoby, kontakty včetně rodičovských |
Client\SkautisClientInterface |
cokoli dalšího: callAll() / callOne() |
SkautisConfig |
sestavení přihlašovací a odhlašovací URL |
Chyby chodí jako Exception\SkautisAuthenticationException (vypršelý token),
SkautisPermissionException (role nemá právo) a SkautisTransportException
(skautIS neodpovídá) — všechny dědí z SkautisException.
Vývoj bez AppID
SkautisClientInterface se přepne na FixtureSkautisClient, který odpovídá
z JSON souborů. Bundle veze ukázkovou sadu (středisko, dva oddíly, dvacet členů
s kontakty); vlastní data nasměrujete přes fixture_dir.
Přihlášení projde stejnou cestou jako doopravdy — pošlete na svou login routu POST
s skautIS_Token rovným FixtureSkautisClient::TOKEN. Díky tomu se testuje
skutečný authenticator, ne jeho obejití.
Přidání další metody skautISu
Přehled služeb je na https://test-is.skaut.cz/JunakWebservice, živě se dá
zkoušet na ws.skautis.cz.
Názvy vstupních polí vždy ověřte na …/JunakWebservice/<Služba>.asmx?op=<Metoda> —
stránka ukazuje request i response XML. Odhadovat je nemá cenu: SoapClient
pracuje podle WSDL a neznámé klíče tiše zahodí, takže metoda jen vrátí prázdno.
Token do ID_Login a AppID do ID_Application doplňuje klient sám. Pozor na
dvě výjimky: LoginUpdate a LoginUpdateRefresh berou token jako ID.
Požadavky
PHP 8.2+ s ext-soap, Symfony 6.4 / 7.x / 8.x.
Rozsah je deklarovaný podle použitého API; odzkoušeno zatím jen na PHP 8.4 a Symfony 8.1. Pokud narazíte na starší kombinaci, dejte vědět.
Licence
MIT, viz LICENSE.
All versions of skautis-symfony with dependencies
ext-soap Version *
psr/log Version ^2.0 || ^3.0
symfony/config Version ^6.4 || ^7.0 || ^8.0
symfony/dependency-injection Version ^6.4 || ^7.0 || ^8.0
symfony/event-dispatcher Version ^6.4 || ^7.0 || ^8.0
symfony/http-foundation Version ^6.4 || ^7.0 || ^8.0
symfony/http-kernel Version ^6.4 || ^7.0 || ^8.0
symfony/routing Version ^6.4 || ^7.0 || ^8.0
symfony/security-bundle Version ^6.4 || ^7.0 || ^8.0
symfony/security-core Version ^6.4 || ^7.0 || ^8.0
symfony/security-http Version ^6.4 || ^7.0 || ^8.0