Spoje-NET / php-abraflexi

PHP Library for easy interaction with economic system AbraFlexi.
MIT License
24 stars 7 forks source link

Označení usera při konfiguraci #32

Closed michaeldojcar closed 4 months ago

michaeldojcar commented 1 year ago

Ahoj, díky moc za knihovnu, která nám brutálně usnadňuje práci.

Malý dotaz nebo podnět: v nastavení konfigurace pomocí konstant je user označován jako ABRAFLEXI_LOGIN, ale při nastavení proměnných rovnou pomocí instance třídy je označený jako user. Je tato drobná odlišnost úmysl?

Vitexus commented 1 year ago

Dobrý den, je to opravdu záměr. Konfigurační klíče velkými písmeny byly dodány až dodatečně. Púvodně se všechno nastavovalo pouze malými protože se více podobají proměnným.

Důvodem je historický vývoj kdy aplikace pro kterou byla knihovna psána, měla .php konfigurák kde připojení bylo definováno jako asociativní pole. O pár let později jsem usoudil že je to bezpečnostní díra a milý konfigurák změnil svoji koncovku na json.

Takto to několik dalších let stačilo, než přišla kontejnerizace. S potřebou mít hotový image kterému se před spuštěním jenom nastaví proměnné prostředí přišel aktuální způsob zavádění konfigurace.

A protože v tomto kontextu už nebylo jasné který login a heslo patří k čemu, dostaly konfigurační klíče prefix FLEXIBEE a to pak s prodejem pozůstatků winstromu Abře na ABRAFLEXI.

Původně jsem uvažoval udělat jenom statickou konverzní funkci, ale když se pak ukázalo že jí volám ve 100% případů, byla "rozpuštěna" do initu třídy.

Jak to používáme nyní je dobře vidět např. zde: https://github.com/VitexSoftware/abraflexi-raiffeisenbank/blob/28a6a3a7dc9fe60960695f7eea17351e36637c6b/src/setup.php#L16

ps. díky za vaše uznání, potěšilo.

michaeldojcar commented 1 year ago

Jasně, šlo mi hlavně o to názvosloví, že jednou je to login a jednou user.

Vitexus commented 1 year ago

No být vámi, tak nesměřuji díky na mě, ale do https://github.com/dativery a hlavně asi na https://github.com/fersman za to jak před lety krásně pojmenovali endpointy agend/evidencí v té nejčistější Czechlish :laughing: takže jsem ten galimatiáš mohl po jejich vzoru rozvinout.

Ale teď vlastně nevím co s tím. Jenom přejmenovat (tak či onak) to nemohu, tím bych porušil zpětnou kompatibilitu a jistotu že mě někdo za takový akt neukamenuje.

Mohl bych vzít v potaz oba možné tvary, ale to se mi taky nechce protože jsou řešeny na dost exponovaném místě (prakticky v konstruktoru) takže každé IF které tam přidám se vykonává mnohatisíckrát a já bych rád taková místa spíše redukoval.

Pokud bych měl k takové úpravě přistoupit vážně, tak init třídy proženu profilerem a pak ještě jednou s tím jedním IF navíc. Pokud by zafungovaly optimalizace PHP a dopad na výkon by byl mizivý tak bych mohl brát v potaz více tvarů konfiguračního klíče pro jméno účtu přihlašujícího k API ...

( Bych nejraději na takovouhle věc udělal anketu, ale to asi github neumí ... )