O víkendu (15:00 až 23:00) probíhá EmacsConf 2023, tj. online konference vývojářů a uživatelů editoru GNU Emacs. Sledovat ji lze na stránkách konference. Záznamy jsou k dispozici přímo z programu.
Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek i s náhledy aplikací v Týden v GNOME a Týden v KDE.
Organizace Apache Software Foundation (ASF) vydala verzi 20 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Desktopové prostředí Cinnamon, vyvíjené primárně pro distribuci Linux Mint, dospělo do verze 6.0. Seznam změn obsahuje především menší opravy a v říjnovém přehledu novinek v Mintu avizovanou experimentální podporu Waylandu.
OpenZFS (Wikipedie), tj. implementace souborového systému ZFS pro Linux a FreeBSD, byl vydán ve verzích 2.2.2 a 2.1.14. Přináší důležitou opravu chyby vedoucí k možnému poškození dat.
V ownCloudu byly nalezeny tři kritické zranitelnosti: CVE-2023-49103, CVE-2023-49104 a CVE-2023-49105 s CVSS 10.0, 8.7 a 9.8. Zranitelnost CVE-2023-49103 je právě využívána útočníky. Nextcloudu se zranitelnosti netýkají.
I letos vychází řada ajťáckých adventních kalendářů. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2023. Pro programátory v Perlu je určen Perl Advent Calendar 2023. Zájemci o UX mohou sledovat Lean UXmas 2023. Pro zájemce o kybernetickou bezpečnost je určen Advent of Cyber 2023…
Byla vydána verze 2.12 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 23.11 Topi. Přehled novinek v Changelogu.
Po 4 měsících vývoje byla vydána nová verze 4.2 multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu a na YouTube.
Catchable fatal error: Object of class FAV could not be converted to string in...Mám třídy
class FAV { private $varFav; public function __construct() { $this->varFav = 'blablabla'; $this->getVar(); } private function getVar() { return $this->varFav; } } class Book { private function getAutor() { .. code .. return $string; } private function getYear() { .. code .. return $string; } private function getFavo() { $obj = new FAV(); return $obj; } private function getGenre() { .. code .. return $string; } public function __toString() { return $this->getAutor(). $this->getYear(). $this->getFavo(). $this->getGenre(); } } $book = new Book(); echo $book;Díky dík..
Řešení dotazu:
class FAV { private $varFav; public function __construct() { $this->varFav = 'blablabla'; } private function getVar() { return $this->varFav; } private function __toString() { return getVar(); } } Nebo takto ? class FAV { private $varFav; public function __construct() { $this->varFav = 'blablabla'; } private function __toString() { return varFav; } }Díky
class FAV { private $varFav; function __construct() { $this->varFav = 'blablabla'; } function __toString() { return $this->varFav; } }Ovšem pokud ten konstruktor nemá žádný parametr, úplně by stačila tato verze:
class FAV { function __toString() { return 'blablabla'; } }Taková třída by však nebyla moc užitečná.
Mělo by fungovat obojí, v obou případech tam však jsou chyby.Ať hledám jak hledám žádná rozdíl jsem tam nenašel, tak v čem jsem měl chyby? Použití private a public před metodama je špatně?
private function getFavo() { $class = 'FAV'; if(class_exists($class, true)) { $obj = new $class(); return $obj; } else { throw new Exception('Chyba!'); } }Pořád mi to vrací chybu:
Fatal error: Method Book::__toString() must not throw an exception in...a nevím jak to mám jinak kontrolovat... Děkuji ještě za pomoc..
private function getFavo() { $class = 'FAV'; return new $class(); }
Mně zase hlava nebere, k čemu vlastně potřebuješ tu hromadu zbytečných get...(). Gettery se přece nedělají, protože porušují zapouzření objektů.Jako tohle je špatně?
private function getAutor() { .. } private function getYear() { .. } private function getFavo() { .. } private function getGenre() { .. }pokud ano, tak jak mají být pojmenovány ty metody?
Vzor Factory sice používám, ale místo testování existence třídy zachytávám fatální chyby.A prozradíš jak na to? Díky
{return $this->author;}
?
Tiskni
Sdílej: