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 20:11 | Nová verze

    Bylo vydáno Ubuntu 24.04.4 LTS, tj. čtvrté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na Discourse.

    Ladislav Hagara | Komentářů: 0
    dnes 17:44 | Pozvánky

    V pátek 20. února 2025 se v pražské kanceláři SUSE v Karlíně uskuteční 6. Mobile Linux Hackday, komunitní setkání zaměřené na Linux na mobilních zařízeních, kernelový vývoj a uživatelský prostor. Akce proběhne od 10:00 do večera. Hackday je určen všem, kteří si chtějí prakticky vyzkoušet práci s linuxovým jádrem i uživatelským prostorem, od posílání patchů například pomocí nástroje b4, přes balíčkování a Flatpak až po drobné úpravy

    … více »
    lkocman | Komentářů: 0
    dnes 13:33 | IT novinky

    Evropská rada vydavatelů (EPC) předložila Evropské komisi stížnost na americkou internetovou společnost Google kvůli její službě AI Overviews (AI souhrny), která při vyhledávání na internetu zobrazuje shrnutí informací ze zpravodajských serverů vytvořená pomocí umělé inteligence (AI). Evropská komise již v prosinci oznámila, že v souvislosti s touto službou začala firmu Google vyšetřovat. Google obvinění ze strany vydavatelů

    … více »
    Ladislav Hagara | Komentářů: 12
    dnes 04:44 | Komunita

    Ubuntu 26.04 (Resolute Raccoon) už nebude v desktopové instalaci obsahovat GUI nástroj 'Software & Updates'. Důvodem jsou obavy z jeho složitosti pro běžné uživatele a z toho plynoucích bezpečnostních rizik. Nástroj lze doinstalovat ručně (sudo apt install software-properties-gtk).

    NUKE GAZA! 🎆 | Komentářů: 18
    dnes 04:33 | IT novinky

    Thomas Dohmke, bývalý CEO GitHubu, představil startup Entire - platformu pro spolupráci vývojářů a agentů umělé inteligence. Entire získalo rekordních 60 milionů dolarů na vývoj databáze a nástrojů, které mají zefektivnit spolupráci mezi lidmi a agenty umělé inteligence. Dohmke zdůrazňuje potřebu přepracovat tradiční vývojové postupy tak, aby odpovídaly realitě, kdy většinu kódu produkuje umělá inteligence.

    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 04:22 | Zajímavý projekt

    Toyota Connected North America oznámila vývoj open-source herního enginu Fluorite, postaveného na frameworku Flutter. Pro renderování grafiky využívá 3D engine Filament od společnosti Google a dle svého tvrzení cílí na konzolovou kvalitu her. Fluorite je zřejmě navržen tak, aby fungoval i na méně výkonném hardware, což naznačuje možnost použití přímo v ICE systémech vozidel. Zdrojový kód zatím zveřejněný není.

    NUKE GAZA! 🎆 | Komentářů: 1
    dnes 04:11 | Bezpečnostní upozornění

    Byl vytvořen nástroj a postup pro překonání věkového ověření platforem Discord, Kick, Twitch, Snapchat (a možná dalších), kód je open-source a dostupný na GitHubu. Všechny tyto sítě používají stejnou službu k-ID, která určuje věk uživatele scanem obličeje a na původní server posílá pouze šifrovaná metadata, ty ale sociální síť už nedokáže sama nijak validovat, 'útok' spočívá ve vygenerování a podstrčení legitimně vypadajících ověřovacích metadat.

    NUKE GAZA! 🎆 | Komentářů: 10
    včera 14:11 | IT novinky

    Jihokorejská kryptoměnová burza Bithumb přiznala vážné selhání interních systémů, které ji vystavilo riziku sabotáže a nezabránilo chybné transakci v hodnotě přes 40 miliard dolarů (814 miliard Kč). Druhá největší kryptoměnová burza v Koreji minulý týden při propagační akci omylem rozeslala zákazníkům zhruba 620 000 bitcoinů místo 620 000 wonů (8700 Kč). Incident vyvolal pokles ceny bitcoinu o 17 procent. Většinu

    … více »
    Ladislav Hagara | Komentářů: 9
    včera 13:55 | Nová verze

    Google Chrome 145 byl prohlášen za stabilní. Nejnovější stabilní verze 145.0.7632.45 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Zpátky je podpora grafického formátu JPEG XL, viz Platform Status. Odstraněna byla před třemi lety. Nový dekodér JPEG XL jxl-rs je napsán v Rustu. Zobrazování JPEG XL lze vyzkoušet na testovací stránce. Povolit lze v nastavení chrome://flags (Enable JXL image format).

    Ladislav Hagara | Komentářů: 0
    10.2. 22:44 | Nová verze

    Byla vydána nová verze 1.26 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (11%)
     (26%)
     (3%)
     (4%)
     (2%)
     (12%)
     (28%)
    Celkem 853 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: PHP a Dependency Injection

    12.10.2020 21:49 Fanda
    PHP a Dependency Injection
    Přečteno: 313×
    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.