Po 26 letech od protiprávního policejního zásahu, který byl spuštěn na základě podnětu společnosti Microsoft, Obvodní soud pro Prahu 2 rozsudkem potvrdil, že Mironet prokázal významnou část svého nároku na náhradu škody vůči Ministerstvu spravedlnosti ČR. Soudem nyní přiznaná část nároku znamená rekordní odškodné, jaké kdy české soudy přiznaly za nesprávný postup státu. Spor byl rozdělen na několik škod, u pravomocně uzavřených částí
… více »Lehké desktopové prostředí LXQt bylo vydáno ve verzi 2.4.0. Jde o převážně opravné vydání s drobnými vylepšeními podpory Waylandu.
Počítačová hra Kingdom Come: Deliverance 2 českého studia Warhorse získala cenu BAFTA v kategorii nejlepší příběh. V konkurenci pěti dalších nominovaných děl porazila i úspěšnou francouzskou hru Clair Obscur: Expedition 33, která v letošním ročníku získala cenu za nejlepší hru roku.
Projekt KDE oslaví v říjnu 30 let. Matthias Ettrich poslal 14. října 1996 do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu. Důležité milníky jsou zobrazeny na časové ose KDE.
Byly vyhlášeny výsledky letošní volby vedoucí/ho projektu Debian (DPL, Wikipedie). Poprvé povede Debian žena. Novou vedoucí je Sruthi Chandran. Letos byla jedinou kandidátkou. Kandidovala již v letech 2020, 2021, 2024 a 2025. Na konferenci DebConf19 měla přednášku Is Debian (and Free Software) gender diverse enough?
Byla vydána nová verze 10.3 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Přidána byla podpora Orange Pi 4 LTS. Přibyl balíček Prometheus.
Implementace VPN softwaru WireGuard (Wikipedie) pro Windows, tj. WireGuard pro Windows a WireGuardNT, dospěly do verze 1.0.
V Pekingu dnes proběhl 2. ročník půlmaratonu humanoidních robotů. První 3 místa obsadili roboti Honor Lightning v různých týmech. Nový rekord autonomního robota je 50 minut a 26 sekund. Operátorem řízený robot to zvládl i s pádem za 48 minut a 19 sekund. Řízení roboti měli časovou penalizaci 20 %. Před rokem nejrychlejší robot zvládl půlmaraton za 2 hodiny 40 minut a 42 sekund. Aktuální lidský rekord drží Jacob Kiplimo z Ugandy s časem 57 minut a 20 sekund [𝕏].
Stanislav Fort, vedoucí vědecký pracovník z Vlčkovy 'kyberbezpečnostní' firmy AISLE, zkoumal dopady Anthropic Mythos (nový AI model od Anthropicu zaměřený na hledání chyb, který před nedávnem vyplašil celý svět) a předvedl, že schopnosti umělé inteligence nejsou lineárně závislé na velikosti nebo ceně modelu a dokázal, že i některé otevřené modely zvládly v řadě testů odhalit ve zdrojových kódech stejné chyby jako Mythos (například FreeBSD CVE-2026-4747) a to s výrazně nižšími provozními náklady.
Federální návrh zákona H.R.8250 'Parents Decide Act', 13. dubna předložený demokratem Joshem Gottheimerem a podpořený republikánkou Elise Stefanik coby spolupředkladatelkou (cosponsor), by v případě svého schválení nařizoval všem výrobcům operačních systémů při nastavování zařízení ověřovat věk uživatelů a při používání poskytovat tento věkový údaj aplikacím třetích stran. Hlavní rozdíl oproti kalifornskému zákonu AB 1043 a kolorádskému SB26-051 je ten, že federální návrh by platil rovnou pro celé USA.
Webové aplikace se od ostatních liší v mnoha směrech. Jedním z nich je relativně časté opakování stejných problémů. Spousta webových aplikací například musí spravovat uživatelské účty, definuje způsob zobrazování a ukládání obsahu, pracuje s databázemi, zpracovává různé datové formáty jako např. XML atd. Programovací jazyky nabízejí často jen parciální řešení podobných problémů, a tak je nasnadě navrhnout vlastní knihovnu, která poskytne potřebnou funkcionalitu prostřednictvím dobře definovaného rozhraní. Knihovna může žít vlastním životem a s novou verzí zpravidla není složité upgradovat i aplikaci.
Samotný návrh knihovny ovšem není jen otázkou tvorby rozhraní a implementace příslušných algoritmů ve zvoleném jazyce. Je potřeba udržet konzistentní styl psaní kódu a vytvořit jednoduchou a úplnou dokumentaci, aby knihovnu mohli používat i další programátoři. Nakonec všichni skončíme u toho, že definujeme vlastní framework, což není vůbec špatné, ale někdo už to mohl udělat dříve a taky lépe.
Tento seriál se bude věnovat frameworku a distribučnímu systému knihoven a rozšíření pro aplikace psané v jazyce PHP nazvanému PEAR. Začneme seznámením s frameworkem a ukážeme si, jak jej nainstalovat a používat. Další díly budou věnovány konkrétním balíčkům, jak se aplikace a knihovny obsažené v PEARu nazývají.
PEAR (PHP Extension and Application Repository) vznikl z diskuse na PHP Developers' Meeting v roce 2000 a od té doby urazil docela dlouhou cestu. V současnosti archiv balíčků obsahuje na 250 open source knihoven a rozšíření roztříděných tématicky do několika kategorií (např. databáze, souborový systém, HTTP, matematika, text, xml, web services apod.). Archiv doplňuje sofistikovaný distribuční systém, kvalitní dokumentace samotného frameworku, návody, mailing-listy a v neposlední řadě IRC kanál sloužící jak uživatelům, tak vývojářům nových projektů, které usilují o začlenění do repositáře.
PEAR navíc definuje čtyři zvláštní skupiny balíčků. Jednou z nich je repositář PECL (PHP Extension Community Library), který obsahuje rozšíření pro samotné PHP. PECL má vlastní webové stránky a definuje vlastni styl psaní kódu, ovšem distribuční systém včetně struktury balíčků sdílí se svojí sestrou, jak PEAR nazývá (ženský rod je zřejmě používán kvůli věnování frameworku dceři autora). Mimo PECL jsou obzvláště důležité tzv. PHP Foundation Classes (PFC), což je skupina balíčků, které standardní distribuce PHP instalují spolu s nástroji pro práci s archivem. PFC tvoří jen stabilní balíčky, které nejsou vázány na konkrétní systém a jsou díky standardizovanému API do budoucna snadno rozšiřitelné. Pokud budou distribuce PHP i nadále instalovat balíčky z PEARu, budou to ty z PFC.
Ještě než začneme s frameworkem pracovat, podíváme se na proceduru, kterou prošel každý balíček, a na jeho vlastnosti, které z ní vyplynuly. Bude nám pak jasné, jaké konvence balíček dodržuje, jaký kód budeme používat a co můžeme očekávat od jeho autora. Pokud se rozhodnete rozšířit PEAR o vlastní knihovnu, doporučuji vám přečíst si kompletní dokumentaci na webových stránkách projektu. Následující text je vhodný spíše pro uživatele (i ti by se však měli s dokumentací seznámit).
Na začátku vývoje balíčku stojí otázka, k čemu bude knihovna nebo rozšíření sloužit. Podle toho jej autor musí správně pojmenovat a zařadit do kategorie. Svůj návrh pošle do mailové konference a počká na vyjádření, zda neexistuje podobný či stejný balíček a zda vůbec bude přínosem. Nemělo by se tedy stát, že by archiv obsahoval dva balíčky, které řeší stejný problém, a tak se netrapte tím, že jste našli jen jeden, který splňuje vaše představy. Pokud se vám balíček hodí, nezapomeňte zkontrolovat jeho závislosti na ostatních (na ty vás případně upozorní i instalační program) a zjistěte, s jakou licencí je nabízen k použití. Autor se vytvořením zavazuje poskytnout podporu, opravovat nahlášené chyby a také by měl rozšiřovat kód o nové funkce, které navrhnou nebo jimi rovnou přispějí ostatní vývojáři. Může se stát, že objevíte chybu a pak byste ji určitě měli nahlásit správci balíčku. K tomu účelu slouží formulář umístěný v rámci distribučního systému.
Jedním z požadavků kladených na každý balíček je dodržení konvence formátování řídících struktur, názvů proměnných, tříd atd. Zkrátka musí zdrojový kód odpovídat stylu, jehož popis je k dispozici v dokumentaci PEARu. Styl psaní kódu se docela podobá doporučení Sunu pro programovací jazyk Java a převratné novinky v něm určitě nenajdete. Před začátkem vývoje aplikace používající balíčky z PEARu se ovšem rozhodně vyplatí zvážit, zda vlastní kód jejich použitím neznepřehledníte. Pokud se nevyhnete tomu, že budete muset provést vlastní refaktorizaci kódu balíčku, zkuste raději vytvořit wrapper nad rozhraním knihovny/rozšíření. Starší verze se totiž dají díky instalačním nástrojům poměrně snadno upgradovat a balíček mohou používat i jiné aplikace běžící na serveru.
Autor je dále povinen zveřejnit kompletní dokumentaci zdrojových kódů a to buď ve formátu Docbook XML nebo jako "prostý text". Najít ji můžete jak na webu, tak také v adresáři, kde je PEAR nainstalován. Dokumentace, která je součástí instalace, zpravidla představuje jen návod jak balíček nainstalovat a začít používat. V distribučním systému by pro každý balíček měla být dostupná podstránka s dokumentací celého API.
Vývoj balíčku probíhá pod dohledem ostatních vývojářů, kteří také nakonec rozhodují o jeho začlenění do archivu. Jakmile je autor spokojen se současným stavem balíčku, může jej zařadit do hlasovacího procesu. Během hlasování se projekt až na výjimečné případy nesmí měnit a první verze je tak před vydáním dána na milost ostatním. Nutný počet hlasů pro přijetí je relativně malý (stačí nasbírat 5 kladných hlasů (+1 hlas získá projekt za souhlas, -1 za nesouhlas, 0 za nerozhodnutého vývojáře) za 7 dní (14 pokud se během 7 dní hlasování nezúčastní alespoň pět vývojářů)), nicméně projekt je od svých prvopočátků sledován a výsledná kvalita by měla být zřejmá už před hlasováním (pokud ovšem autor nechce riskovat).
Distribuční systém balíčků nabízí mimo funkcí pro získávání zdrojových kódů hlavně jednotné webové rozhraní pro každý balíček, ve kterém najdete informace o jeho stavu, můžete si prohlédnout dokumentaci, zjistit informace o týmu vývojářů, kteří jej mají na starosti, nebo nahlásit nalezené chyby. Pracovat s distribučním systémem se dá pracovat buď přes webové rozhraní, nebo přes správce balíčků, který je obvykle nainstalován spolu s PHP. Obě prostředí ovšem obsahují funkce, které nenabízí to druhé (z webu např. balíčky nenainstalujete, ze shellu zase nenahlásíte nalezené chyby atd.), ale základní funkce (získání a vyhledání balíčku a informací o něm) mají společné.
Pokud máte nainstalováno PHP ve verzi 4.3.0 a vyšší, máte standardně k
dispozici i správce balíčků, ledaže jste při překladu použili volbu
without-pear.
Jestliže správce balíčků nemáte, můžete ho nainstalovat ručně. Stačí v
shellu zadat lynx -source http://go-pear.org/ |
php a řídit se instrukcemi.
Jakmile je správce nainstalován, můžete s ním začít pracovat. Seznam argumentů spouštěcího příkazu je výstupem skriptu bez parametrů:
pear
Zvědavé povahy si určitě všimnou, že samotný správce balíčků je PHP aplikace a dokonce je součástí balíčku se jménem PEAR. Někdo si možná prohlédnul kategorii "PEAR", někdo zase nahlédnul do zdrojových kódů a zjistili jste tak, že existují i grafické podoby správce. V současnosti to jsou další dvě verze - jedna webová a druhá postavená na PHP-GTK (balíčky, které PHP-GTK používají, patří do zvláštní skupiny jako např. PFC) - obě zatím jen ve stavu betaverze. V dokumentaci o nich proto není žádná zmínka, ale vezměme webovou variantu a demonstrujme si na ní práci s CLI nástroji.
Seznam dostupných balíčků lze zobrazit příkazem:
pear remote-list
Na terminálu uvidíte názvy všech balíčků a čísla jejich verzí. Balíček,
který chceme nainstalovat, ovšem není zobrazen. Jak je to možné? Chování
správce totiž ovlivňují konfigurační proměnné a
jednou z nich je i preferred_state, která určuje, jakou verzi
(alpha, beta, devel, stable, snapshot) chceme přednostně instalovat. Určitě
šikovná volba, nicméně ovlivní i seznam balíčků, který se zobrazí
(vyhledávání pomocí pear search neovlivňuje). Dostupná
verze PEAR_Frontend_Web je pouze beta, tudíž změníme nastavení správce:
pear config-set preffered_state beta
Po ukončení experimentů si vraťte nastavení zpět na původní (nejspíš stable).
Teď už balíček v seznamu vidíte a hlavně je možné jej konečně nainstalovat:
pear install PEAR_Frontend_Web
Pracujete-li s čistým PEARem, instalátor vám ohlásí, že PEAR_Frontend_Web potřebuje ještě balíčky Net_UserAgent_Detect a HTML_Template_IT. Nainstalujeme tedy všechny najednou:
pear install PEAR_Frontend_Web NET_UserAgent_Detect
HTML_Template_IT
Abyste mohli frontend vyzkoušet, zkopírujte soubor
WebInstaller.php, který se nachází v adresáři
PHP_LIB_DIR/php/PEAR/ (PHP_LIB_DIR nahraďte
adresářem, kde jste PHP řekli, že se nachází knihovny
[/usr/local/lib/]), do www adresáře webserveru a zkuste jej
zobrazit v prohlížeči.
Balíček odinstalujete triviálním:
pear uninstall PEAR_Frontend_Web
Existují i balíčky, které framework používají, ale nejsou zařazeny v
repositáři. Takové balíčky jsou zpravidla dostupné jako tarbally, přičemž
jejich obsah je vytvořen tak, aby je správce dokázal nainstalovat.
Instalace z tarballu je umožněna díky souboru package.xml,
jehož formát je vysvětlen v dokumentaci. Při instalaci zadáte místo
názvu balíčku cestu k souboru package.xml.
K webhostingu zpravidla nedostanete přístup k shellu a instalaci pak
musíte provést ručně. Naštěstí to není nic obtížného a většina z vás by
určitě přišla, jak na to. Stáhněte si zdrojové kódy vybraného balíčku a
přes FTP je uploadujte např. do adresáře /include ve vašem
webovém prostoru. Ve skriptech nezapomeňte pomocí funkce ini_set
nastavit proměnnou "include_path" na /include.
Tento způsob instalace - pravděpodobně nejčastější, jaký budete provádět - s sebou nese malý zádrhel. Je třeba si ověřit závislosti a "nainstalovat" také balíčky, na kterých vámi zvolený závisí. Samotný balíček PEAR definuje pro PHP4 mj. často používané speciální funkce, které fungují jako destruktory.
Tento díl vás měl s frameworkem seznámit a poskytnout vám základy pro práci s ním. Netvrdím, že jsem vyčerpal všechna zajímavá témata, ale to jsem ani nechtěl. Výborným zdrojem nejen pro začátečníky je určitě online dokumentace, která není příliš rozsáhlá, ale najdete v ní všechno, co budete potřebovat. Pro budoucí přispěvatele je její znalost nutností.
Další díl se dle ohlasu bude věnovat konkrétním balíčkům z archivu. Pokud máte konkrétní přání, můžete jej sdělit v diskusi pod článkem a já se pokusím balíček nastudovat.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Urcite je o co stat a rozvijet. Hodne uspechu s PEARem.