Spoje-NET / php-abraflexi

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

Zobrazování chyb #1

Closed mzvarik closed 4 years ago

mzvarik commented 4 years ago

if (isset($faktura->getStatusMessages()['error'])) echo $faktura->getStatusMessages()['error'][0];

Ušetřilo by mě 2h.... Do příští knihovny se prosím naučte používat: try ... catch exception

Jinak děkuji za sdílení knihovny a za podstatně lepší examples než v té minulé. ❤🙏

Vitexus commented 4 years ago

Dobrý den, můžete to prosím nějak lépe popsat?

Try/Catch nepoužívám záměrně. Do dneška jsem se nerozhodnul zdali když flexibee vrátí 4xx/5xxx má v php vyhodit vyjimku když k žádné chybě v programu nedošlo.

Uznávám že examply jsou dost stručné ale je to cílem. Chyby z FlexiBee se logují dle nastavení konstanty

EASE_LOGGER - one of memory,console,file,syslog,email,std,eventlog or combination eg. "console|syslog"

Více info https://github.com/VitexSoftware/php-ease-core

Díky za váš zájem.

mzvarik commented 4 years ago

Jakože tímhle logujete chybu jo? $invoice->addStatusMessage('Invoice: '.$invoice->getRecordIdent().' '.$invoice->getRecordCode(), $invoice->sync() ? 'success' : 'error' );

Však tam není žádné info, jen 0/1. Na to stačí if( vystav fakturu ) Vůbec nechápu proč to děláte takto. Ten logger jsem nepochopil vůbec smysl, ani v čem je to lepší oproti try/catch. Já potřebuju znát výsledek hned... a ne si to poslat do emailu nebo uložit někam.

Upřímně celá ta knihovna stačí do jedné class... a 20 examples.

Omlouvám se za svou trpkost a nedostatek milosti, pracuji na tom, ale na těchle věcech dycky ztratím sílu... protože kdybych si to udělal sám, tak mám jednoduchý CURL a několik XML šablon.. a víc neřeším.

Vitexus commented 4 years ago

Samozřejmě vám v takovémto postupu nic nebrání. I já jsem s první knihovnou pro flexibee začínal stejně.

No jak tak z vašeho úhlu pohledu koukám do kódu, musím vám dát za pravdu. Něco s tím udělám aby dostat se k textu vrácené chyby nebylo tak komplikované.

Mě to dodnes nepálilo, takže to není v tomle ohledu doladěné, ale když vás to nenechalo do tří do rána usnout, tak s tím něco udělám, ale až zítra. Teď už na to nemám energii. Zatím dobrou noc.

mzvarik commented 4 years ago

Try/Catch nepoužívám záměrně. Do dneška jsem se nerozhodnul zdali když flexibee vrátí 4xx/5xxx má v php vyhodit vyjimku když k žádné chybě v programu nedošlo.

Ano, vyjimka se hází vždy a uživatel si dá vždy kolem celého bloku try { catch (...) { Případně si definuje default handler pro FlexiBeeException. To nemusí být jen když je chyba někde v programu. Mě stačí, že někde ve FlexiBee je chyba, jakákoliv a vezmu si z toho popis.

Vitexus commented 4 years ago

Nyní je možné zapnout volitelně vyhazování vyjímky. Viz příklad: https://github.com/Spoje-NET/php-flexibee/blob/master/Examples/ErrorHandling.php

Pokud budete spokojen, issue uzavřu.

mzvarik commented 4 years ago

je to super 👍👍

Vitexus commented 4 years ago

Jsem rád že jste spokojen. Až dodělám unittesty může být release.