abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:44 | Zajímavý článek

    Ondřej Filip publikoval reportáž z ceremonie podpisu kořenové zóny DNS. Zhlédnout lze také jeho nedávnou přednášku Jak se podepisuje kořenová zóna Internetu v rámci cyklu Fyzikální čtvrtky FEL ČVUT.

    Ladislav Hagara | Komentářů: 0
    dnes 14:22 | IT novinky

    Společnost BenQ uvádí na trh novou řadu monitorů RD určenou pro programátory. První z nich je RD240Q.

    Ladislav Hagara | Komentářů: 3
    dnes 13:00 | IT novinky

    Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem nadále zůstává Frontier od HPE (Cray) s výkonem 1,206 exaFLOPS. Druhá Aurora má oproti loňsku přibližně dvojnásobný počet jader a dvojnásobný výkon: 1,012 exaFLOPS. Novým počítačem v první desítce je na 6. místě Alps. Novým českým počítačem v TOP500 je na 112. místě C24 ve Škoda Auto v Mladé Boleslavi. Ostravská Karolina, GPU

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 10:11 | Nová verze

    GHC (Glasgow Haskell Compiler, Wikipedie), tj. překladač funkcionálního programovacího jazyka Haskell (Wikipedie), byl vydán ve verzi 9.10.1. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 09:22 | Nová verze

    Po 9 týdnech vývoje od vydání Linuxu 6.8 oznámil Linus Torvalds vydání Linuxu 6.9. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna. Později také na Linux Kernel Newbies.

    Ladislav Hagara | Komentářů: 0
    11.5. 18:22 | Nová verze

    Byla vydána verze 0.2.0 v Rustu napsaného frameworku Pingora pro vytváření rychlých, spolehlivých a programovatelných síťových systémů. Společnost Cloudflare jej letos v únoru uvolnila pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 0
    10.5. 19:11 | Nová verze

    Open source RDP (Remote Desktop Protocol) server xrdp (Wikipedie) byl vydán ve verzi 0.10.0. Z novinek je vypíchnuta podpora GFX (Graphic Pipeline Extension). Nová větev řeší také několik bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 15
    10.5. 04:11 | Nová verze

    Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    9.5. 22:22 | Bezpečnostní upozornění

    Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].

    Ladislav Hagara | Komentářů: 22
    9.5. 21:11 | Zajímavý článek

    V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.

    Ladislav Hagara | Komentářů: 61
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (70%)
     (7%)
     (11%)
     (12%)
    Celkem 205 hlasů
     Komentářů: 14, poslední dnes 15:03
    Rozcestník

    PEAR - I

    30. 3. 2005 | Pavel Szalbot | Programování | 12957×

    Nebojte se, jste tu správně. Nebude řeč o ovoci, ale o frameworku pro jazyk oblíbený mezi vývojáři webových aplikací. Tím jazykem je PHP a framework se jmenuje, jak jistě správně tušíte, PEAR.

    Úvod - framework

    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.

    PEAR

    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.

    Balíčky

    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.

    Konvence

    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

    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é.

    Instalace

    Instalace pomocí správce balíčků

    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

    Instalace z tarballů

    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.

    Instalace v prostředí webhostingu

    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.

    Závěr

    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.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

    30.3.2005 00:25 doubleZ | skóre: 24 | blog: smazano
    Rozbalit Rozbalit vše Error
    Tak clanek je velice zajimavy, nicmene dostavam ve Slackwaru 10.1 s dist balickem error PHP: Error parsing /etc/apache/php.ini on line 257

    a nemuzu se ani prepnout do jineho modu, vsechno da failed, jako user i jako root...
    30.3.2005 13:58 rane
    Rozbalit Rozbalit vše Re: Error
    ak prezradis co sa nachadza na riadku 257 v subore /etc/apache/php.ini tak by ti mozno aj niekto dokazal pomoct :)
    Jiří Němec avatar 30.3.2005 00:47 Jiří Němec | skóre: 22 | blog: BluPix | Horní Smrčné
    Rozbalit Rozbalit vše webhosting
    Super článek. Jen se bojím instalace na webhostingu, snad o tom bude jeden z dalších dílů.

    Kdysi jsem chtěl použít nějaký XML parser z pear a nakonec jsem to vzdal, mělo to moc závislostí. O tom instalátoru jsem tenkrát nevěděl.
    Spock: "Logic, logic, logic. Logic is the beginning of wisdom, not the end.
    30.3.2005 07:14 ondrej
    Rozbalit Rozbalit vše framework?
    Nazvat PEAR frameworkom je trochu silne. Je to len obycajne repozitory.
    30.3.2005 11:48 Marek 'marx' Grác | skóre: 21 | blog: Paralelný blog | Brno / Bratislava
    Rozbalit Rozbalit vše Re: framework?
    Podľa mňa to nie je len repository. Repository je cpan, kde každý pridá čo chce a nakoniec je tam bordel. Tak zlé to zatiaľ v PEARe nie je :) Existujú isté postupy, ktorými sa rozhoduje, či tam pridať package, alebo nie. Aj keď uznávam, že od skutočného frameworku to má ešte ďaleko.
    30.3.2005 12:15 Pavel 'lingeek' Szalbot | skóre: 54 | Třinec
    Rozbalit Rozbalit vše Re: framework?
    Co je podle tebe skutečný framework?
    Math, as Barbie says, is hard.
    30.3.2005 21:39 Marek 'marx' Grác | skóre: 21 | blog: Paralelný blog | Brno / Bratislava
    Rozbalit Rozbalit vše Re: framework?
    niečo, čo je viac previazané a hlavne sa podobné veci robia vždy rovnako. Problém/výhoda PEARu je, že poskytuje často viac možných riešení rovnakej veci akurát z rôznych pohľadov. Plus je, že je zrejmá snaha o to, aby tam jeden pohľad na jednu vec nebol zastúpený miliónkrát (a la CPAN). Ako framework sa mi celkom pozdával struts a čo som len počul tak aj zope (ale ten som sám nepoužíval).
    30.3.2005 14:14 morf
    Rozbalit Rozbalit vše Zkusenosti s PEAR
    S PEAR pracuji uz neco pres rok, a je to vyborny doplnek k PHP. Namatkou bych zminil:

    DB objektove orientovana (OO) abstrakcni vrstva pro spoustu databazi, z mnoha funkcemi HTML_Template_Flexy OO sablonovaci system, ktery podporuje v sablonach napr. i syntaxy Smarty XML_Parser parser XML, doporucuji vsak pouzivat Simple XML pokud mate PHP5 Auth jednoducha trida pro autorizaci uzivatelu z databaze

    a dalsi a dalsi a dalsi :-)

    Urcite je o co stat a rozvijet. Hodne uspechu s PEARem.
    30.3.2005 14:54 manas456 | blog: sem_manas
    Rozbalit Rozbalit vše PEAR je lamoidni masturbace
    Tak nevím, jestli jsem se svým názorem osamocen, ale PEAR jsem zkoušel od jeho slavného spuštění asi třikrát a vždycky to skončilo neúspěchem.

    Testování vždy dopadlo tak, že se ukázalo, že celé toto "repository" je jenom přebubřelá sada nic nedělajících knihoven. Snaha o velkou objektovost zatím vedla jenom k přemíře závislostí všeho na všem a ke spoustě nic nedělajících funkcí.

    Pokud byla u nějakého projektu snaha PEAR používat, vždy se narazilo na nějaký problém, který byl řešitelný jen - instalací jiné kvalitní knihovny mimo PEAR - použitím nějaké nízkoúrovňové extension - napsáním vlastní funčknosti

    Nemůžu vyloučit, že někdo PEAR rutinně používá, ale nám se to zatím nikdy neosvědčilo.

    Bohužel měřit popularitu čehokoliv podle množství nadšených lidí kolem projektu je ve světě PHP velmi obtížné, protože mezi PHP programátory se vyskytuje velké množství nedouků, kteří jsou ochotni lepit cokoliv jakkoliv a nadchnou se pro každou blbost.
    30.3.2005 17:30 Ladislav Hagara | skóre: 102 | blog: Ride the Raven
    Rozbalit Rozbalit vše Source Mage a PEAR
    V Source Mage máme v grimoire sekci php-pear. S PEAR balíčky lze proto pracovat stejně jako s jinými aplikacemi (spells). Nainstalovat "cast PEAR-Net_Whois", odinstalovat "dispel PEAR-Net_Whois".
    25.10.2005 14:46 Krakonoš | skóre: 17 | Nová Ves v Horách
    Rozbalit Rozbalit vše Re: PEAR - I
    Je 'preferred_state' jak je psano v textu, nikoliv preffered_state jak je psano v prikladu ;)..Jinak dobre, jenom bych si predstavoval neco jako seznam nejuzitecnejsich (nejpouzivanejsich) balicku a jejich strucne vyuziti a odkaz na nejaky manual :)..Jinak dobre

    Založit nové vláknoNahoru

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