Tak nám vyšla nová verze PHP 5.2, která by měla vylepšit rychlost přímo v ZEND Engine.
Koukal jsem se na změny a je pravda, že pár věcí se zde pohlo k lepšímu. Otázkou však zůstává, zda se z toho paskvilu a neuspořádaného vývoje, v kterém se PHP ocitá dokáže ještě vymanit.
Microsoft sám začal mít o PHP zájem alespoň v podpoře .NET, ale jeden nikdy neví, kam to může zajít (InnoDB v MySQL vs. Oracle).
Jsou zde opravené některé věci, jako např. v abstraktní třídě nemůže existovat statická metoda, magická metoda __toString() nemůže vyhazovat výjimku apod.
Ale co mě stále štve na PHP je ta ignorace type hinting, s tím související přetěžování metod či konstruktorů, dále vyhazování výjimek z php funkcí namísto stupidního Boolean, nemožnost smysluplně vytvořit Singleton, apod.
Pokud se podívám na způsob práce s databází, je často zdůrazněna dobrá podpora MySQL, ale k čemu mi je taková vynikající podpora, když zde nemám pořádný nástroj na ORM, DAO, apod. (např. Hibernate v Jave). Je zde sice jakýsi Propel, ale... Jako standard to bráno není a asi ani nikdy nebude. (Ono MySQL by samo potřebovalo opravit pár věcí, kterými se honosí verze 5. Alespoň integrace nějakého smysluplného jazyka pro psaní stored procedure. V tomto nynějším stavu je to na cvokárnu.)
Jsem zvědavý jaké změny nám přinese PHP 6.0. Těším se zejména na věci jako definování návratových hodnot v metodách, přímou integraci s MySQL a s tím spojený jistý nárůst rychlosti.
Ale na druhou stranu zůstávám skeptický v tom, jestli se PHPko někdy pročistí a vzniknou frameworky, které budou standardem pro práci s danou vrstvou. Pokud ovšem PHP bude i nadále ignorovat type hinting, čistý oop model, zastaralé metody, způsob definování názvů metod, balíčkovací systém pro třídy, apod. tak nikdy nevzniknou frameworky, nikdy se nic nestane standardem a nikdy nebude ničím jiným než jazykem pro lamy :(
Blog nejen o programování. Hlavním tématem jsou technologie, jako je Javascript, Typescript, React či GraphQL. Občas zabrousím i soft skills oblastí, díky tomu, že se dostanu do role team leadera či školitele. Dále jsem zakladatelem společnosti: https://apitree.cz
Přihlásit se k odběru:
Komentáře k příspěvku (Atom)
Když programátor založí a řídí firmu
Jako malý jsem chtěl být popelářem. Ani ne tak proto, že bych měl nějaký zvláštní vztah k odpadkům, ale hrozně se mi líbilo, jak...

-
Na začátek by bylo dobré, abych objasnil samotný titulek, který může na někoho působit jako červený hadr. Článek nebude o obecných pravidl...
-
Minule jsem psal o možnosti spojení Wicketu s EJB3 a o Wicket Security. Dnes se podívám na další vlastnosti a možnosti tohoto webového frame...
-
Každý, kdo chce efektivně pracovat s objekty, musí použít nástroj, který mu umožní automaticky doplňovat potřebné informace. Jinými slovy, p...
> vyhazování výjimek z php funkcí namísto stupidního Boolean
OdpovědětVymazatNávratová hodnota PHP funkce nesvědčí o tom, jestli došlo k chybě, ale jestli funkce uspěla. Např. pokus o vyhledání podřetězce může skončit neúspěchem, aniž by došlo k jakékoliv chybě. Chyby jako `E_WARNING` vyvolává PHP nezávisle - je to podobný koncept jako výjimky a pomocí `set_error_handler` je lze na výjimky triviálně přeložit.
Netvrdím, že výjimky lze použít úplně všude. To je samozřejmě nesmysl. Např. u metody isActive() budu vrace boolean hodnotu. Výjimku bych měl ale vyhazovat např. u metody parse()
OdpovědětVymazatJak jsem psal, vadí, že funkce v PHP vracejí mixovaný typ (Boolean, jiny typ), to si nemyslím, že by byl dobrý způsob, už z důvodu přehlednosti.
Někdy potřebuji zjistit, že pokud funkce neuspela, tak proč neuspěla a co mi říká chybová zpráva, to návratovou hodnotou false nikdy nezjistím.
Ten tvůj způsob samozřejmě možný je, ale otázkou zase zůstává, zda budu u všech metod vyhazovat výjimky, nebo je ručně upravovat, já nevím, přijde mi, že tohle by mělo být navrženo už od tvůrců jazyka a nikoli tak, abych to musel pracně definovat.