abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 02:44 | IT novinky

    Ve spolupráci společností OpenAI a Work Louder byla představena (𝕏) hardwarová klávesnice Codex Micro pro práci s AI agenty. Cena klávesnice je 230 dolarů.

    Ladislav Hagara | Komentářů: 0
    včera 20:00 | Nová verze

    Byl vydán Mozilla Firefox 153.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 153 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | Bezpečnostní upozornění Ladislav Hagara | Komentářů: 7
    včera 13:11 | Nová verze

    Byla vydána nová verze 5.44 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 71 vývojářů. Změněno bylo přibližně 270 tisíc řádků v 1 300 souborech. Přehled novinek a změn v podrobném seznamu.

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | Pozvánky

    Na 23. září 2026 je do bratislavské Nové Cvernovky naplánovaná jednodenní konference #nobullshit.camp pro tech leadery, DevOps a platform inženýry. Mají tu zaznít upřímné příběhy z praxe o tom, co v produkčních systémech reálně fungovalo, co se pokazilo a co si z toho lidé odnesli. Témata pokrývají tři oblasti – DevOps a platformy (Kubernetes, cloud, provoz systémů), firemní kulturu a leadership. Program běží ve dvou formátech: hlavní

    … více »
    alian | Komentářů: 0
    včera 03:44 | Nová verze

    Byla vydána nová verze 1.58 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Josephine Pfeiffer. Vypíchnout lze možnost nmtui zobrazit nastavení Wi-Fi jako QR kód nebo podporu CLAT (464XLAT) a tunelů GENEVE (Generic Network Virtualization Encapsulation).

    Ladislav Hagara | Komentářů: 0
    20.7. 20:22 | IT novinky

    Zákaz používání mobilních telefonů a dalších elektronických komunikačních zařízení ve školách, jehož uzákonění navrhli jako poslanci premiér Andrej Babiš (ANO) a ministr školství Robert Plaga (za ANO), dnes podle očekávání vláda podpořila. Novinářům to oznámil Babiš, podle Plagy byla podpora kabinetu jednomyslná. Účinnost předkladatelé navrhují od 1. září 2027. Podle opoziční ODS je plošný zákaz líbivé populistické opatření namířené proti digitální gramotnosti dětí.

    Ladislav Hagara | Komentářů: 10
    20.7. 19:33 | Bezpečnostní upozornění

    Vládní CERT upozorňuje (𝕏) na zranitelnost ve WordPress Core: CVE-2026-63030 s přezdívkou wp2shell. Zranitelnost typu vzdálené spuštění kódu (RCE) bez nutnosti autentizace umožňuje útočníkovi spouštět libovolný kód prostřednictvím endpointu WordPress REST API Batch. Ke zneužití není vyžadován platný uživatelský účet ani interakce uživatele. Úspěšné zneužití může vést ke kompletnímu kompromitování webové stránky a souvisejících dat. Zranitelnost postihuje verze WordPress 6.9.0 až 6.9.4 a 7.0.0 až 7.0.1.

    Ladislav Hagara | Komentářů: 0
    20.7. 18:11 | IT novinky

    Evropská komise (EK) vyměřila čínskému internetovému prodejci AliExpress pokutu 550 milionů eur (13,3 miliardy korun) za porušení povinností vyplývajících z nařízení o digitálních službách (DSA). Platforma podle EK řádně neposuzovala a neomezovala rizika související s prodejem nelegálních, nebezpečných nebo padělaných výrobků na svém internetovém tržišti. Komise zároveň firmě nařídila přijmout nápravná opatření. Podle AliExpressu je pokuta nepřiměřená.

    Ladislav Hagara | Komentářů: 18
    20.7. 12:22 | Nová verze

    Ruffle, tj. open source emulátor Flash Playeru napsaný v Rustu, byl vydán ve verzi 0.4.0. Ke stažení je také na Flathubu. Přímo ve webovém prohlížeči lze vyzkoušet online dema nebo vlastní swf soubory.

    Ladislav Hagara | Komentářů: 5
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (30%)
     (5%)
     (6%)
     (2%)
     (15%)
     (24%)
    Celkem 2196 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: PHP a Dependency Injection

    12.10.2020 21:49 Fanda
    PHP a Dependency Injection
    Přečteno: 354×
    Zdravim,

    potreboval bych si, s vasi laskavou pomoci, ujasnit jeste nektere "best practices". Za kazdou nasledujici vetou si prosim domyslete otaznik

    Dependency injection je, kdyz... predam tride jeji zavislosti pres konstruktor. Zavislostmi myslim instance jinych trid, ktere dotycna trida potrebuje. A kdyz je tech zavislosti hodne, a potrebuji casto vytvaret instanci te tridy, tak si na to udelam Factory

    Chapu to treba u databaze. Kdy tride, ktera potrebuje pristupovat k databazi, predam nejaky databazovy adapter, ktery muzu pozdeji predelat treba z MySQL na Postgres a nebudu muset danou tridu prepisovat. Prepisu jenom ten adapter

    Ale ma smysl predavat pres konstruktor i takove tridy jako DateTime, DateInterval, DatePeriod?

    Jako mam takove simrani, ze to smysl ma. Pak preci staci kouknout na konstruktor te tridy, a vyctu odtama vsechny jeji zavislosti. Nemusim prohlizet tridu celou

    A ma smysl si ke vsem zavislostem vytvaret vlastni "adaptery"?

    Jo treba tridy MyDateTime, MyDateInterval, ... kde sice nebudu dedit z DateTime, DateInterval, abych nemusel resit argumenty jejich konstruktoru, ale kde si v konstruktoru udelam instanci te DateTime, a nadefinuju si vlastni metody, takze kdyby mi v budoucnu preskocilo, a chtel bych misto DateTime pouzit jinou tridu, tak mi staci prepsat jen ten adapter

    Neni to uz trochu overkill? Kdyz se vlastne jedna o "nativni" PHP tridy?

    Kde je ta hranice, kdy ma smysl delat adaptery/interfejsy, a kde uz je to zbytecny?

    Diky

    Řešení dotazu:


    Odpovědi

    12.10.2020 21:58 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: PHP a Dependency Injection
    debian.plus@protonmail.com
    12.10.2020 23:10 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP a Dependency Injection
    Není to tak složité, jak to vypadá. Představ si, že máš třídu Item s položkou ceníku, u které chceš prezentovat částku ve více měnách. Některá má "Kč" za částkou, jiná "$" před částkou, některá s desetinnou tečkou, jiná s čárkou. Počet desetinných míst může být také různý. Tentýž problém můžeš řešit na mnoha místech programu a proto se vyplatí mít na to samostatnou třídu, resp. sadu tříd.

    Vytvoříš si objekt, který bude specifický pro každou měnu. Ten objekt bude mít metodu format(), která bude umět převést částku na string.
    $currency = new Dollar();
    echo $item->formatPrice($currency);
    
    Té metodě předáš v parametru objekt, který umí zformátovat částku metodou format(). Metoda formatPrice() bude tedy obsahovat:
    return $currency->format($this->price);
    
    Když změníš měnu, tak nemusíš měnit třídu Item, ale do $currency vložíš instanci jiné třídy, například Euro. Může to umět třeba i kurzový přepočet. Ta třída může obsahovat více metod, třeba pro výstup URL s obrázkem měny.

    Totéž můžeš udělat i s kostruktorem, ale dá se to použít u jakékoli metody.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.