PHP 5 moduly, rozšíření a akcelerátory
PHP 5 moduly, rozšíření a akcelerátory
David Sklar
Essential PHP Tools: Modules, Extensions, and Accelerators by David Sklar. Original English language published Apress L.P., 2560 Ninth Street, Suite 219, Berkeley, CA 9 47 10 USA. Copyright © 2004 by Apress L.P. CZECH language edition copyright © 2005 by ZONER software s.r.o. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from publisher. Originál v anglickém jazyce vydal Apress L.P., 2560 Ninth Street, Suite 219, Berkeley, CA 9 47 10 USA. Copyright © 2004 Apress L.P. České vydání Copyright © 2005 ZONER software s.r.o. Všechna práva vyhrazena. Žádná část této publikace nesmí být reprodukována nebo předávána žádnou formou nebo způsobem, elektronicky ani mechanicky, včetně fotokopií, natáčení ani žádnými jinými systémy pro ukládání bez výslovného svolení vydavatele.
PHP 5 – moduly, rozšíření a akcelerátory Autor: David Sklar Copyright © ZONER software s.r.o. Vydání první v roce 2005. Všechna práva vyhrazena. Katalogové íslo: ZR424 Zoner Press ZONER software s.r.o. Koželužská 7, 602 00 Brno Překlad: RNDr. Jan Pokorný Odpovědný redaktor: Miroslav Kučera Šéfredaktor: Ing. Pavel Kristián DTP: Miroslav Kučera © Cover foto: Jiří Heller, HELLER.CZ s.r.o., www.heller.cz © Cover a layout: Ing. Pavel Kristián Informace, které jsou v této knize zveřejněny, mohou byt chráněny jako patent. Jména produktů byla uvedena bez záruky jejich volného použití. Při tvorbě textů a vyobrazení bylo sice postupováno s maximální péčí, ale přesto nelze zcela vyloučit možnost výskytu chyb. Vydavatelé a autoři nepřebírají právní odpovědnost ani žádnou jinou záruku za použití chybných údajů a z toho vyplývajících důsledků. Všechna práva vyhrazena. Žádná část této publikace nesmí být reprodukována ani distribuována žádným způsobem ani prostředkem, ani reprodukována v databázi či na jiném záznamovém prostředku či v jiném systému bez výslovného svolení vydavatele, s výjimkou zveřejnění krátkých částí textu pro potřeby recenzí.
Veškeré dotazy týkající se distribuce směřujte na: Zoner Press ZONER software s.r.o. Koželužská 7, 602 00 Brno tel.: 532 190 883, fax: 543 257 245 e-mail:
[email protected] http://www.zonerpress.cz
ISBN 80-86815-19-6
Stručný obsah Část I
Databáze
21
Kapitola 1
Přístup k databázím s DB
23
Kapitola 2
Přístup k databázím s ADODB
43
Část II
HTML
71
Kapitola 3
Zpracování formulářů s HTML_QuickForm
Kapitola 4
Šablony se Smarty
73
Část III
XML
Kapitola 5
Rozklad XML založený na událostech s XML_Parser
159
Kapitola 6
Vývoj webových služeb s XML_RPC
179
Kapitola 7
Vývoj webových služeb se SOAP
193
Kapitola 8
Snazší parsování XML se SimpleXML
219
Část IV
Networking
107
157
227
Kapitola 9
Odesílání pošty
229
Kapitola 10
Autentizace, uživatelé a hesla
245
Část V
Ladění, cache a optimalizace
Kapitola 11
Pohledy pod kapotu PHP
267
Kapitola 12
Profilování a ladění s Xdebug
277
Kapitola 13
Akcelerace s code cache
297
265
Podrobný obsah Informace o autorovi Poděkování Úvod Pošlete nám váš názor Stažení zdrojového kódu Informace o PEAR
Část I
Databáze
Kapitola 1
Přístup k databázím s DB
Prozkoumání jednoduchého databázového příkladu Úvod do DSN Odesílání dotazů a získávání výsledků Přeznačení speciálních znaků v řetězci a zástupné symboly Použití jednotlivých metod pro získávání dat Informace o dotazu Opakované spouštění dotazu Představení posloupností Úvod do zpracování chyb Kapitola 2
Přístup k databázím s ADODB
Připojení a prosté dotazy Úvod do sad záznamů Zpracování chyb Úvod do posloupností Generování HTML Ukládání výsledků dotazů do cache Export dat
Část II
HTML
Kapitola 3
Zpracování formulářů s HTML_QuickForm
Vytvoření a zobrazení formuláře Zpracování odeslaných dat Nastavení ověřovacích pravidel
11 11 13 15 15 16
21 23 23 24 25 29 33 36 37 39 40 43 43 46 52 54 55 67 68
71 73 73 93 97
Kapitola 4
Šablony se Smarty
Instalace a konfigurace Smarty Základní pojmy Smarty Implementace podmínkové logiky Zobrazování dat prostřednictvím cyklů Vkládání souborů a šablon Zpracování textu Ukládání výstupu šablony do cache Kompletní příklad
Část III XML Kapitola 5
Rozklad XML založený na událostech s XML_Parser
Zpracování značek a znakových dat Zpracovatelské instrukce Zpracování vnořených značek Práce ve stylu prvek za prvkem Specifikace znakových sad Poznámky Kapitola 6
Vývoj webových služeb s XML_RPC
Volba XML-RPC Volání procedur XML-RPC na jiném serveru Obsluhování metod XML-RPC Poznámky Kapitola 7
Vývoj webových služeb se SOAP
Volba SOAP Instalace SOAP Kladení požadavků SOAP Obsluhování požadavků SOAP Jak dál Poznámky Kapitola 8
Snazší parsování XML se SimpleXML
Vytváření objektů SimpleXML Práce s objekty SimpleXML Práce se jmennými prostory Prohledávání s XPath
107 108 110 122 124 135 139 150 153
157 159 160 168 170 173 175 177 179 179 185 187 192 193 193 194 194 204 217 217 219 219 221 223 225
Část IV Networking Kapitola 9
Odesílání pošty
Odesílání textových e-mailů s modulem Mail PEAR Odesílání zpráv Mail MIME s Mail_mime Poznámky Kapitola 10 Autentizace, uživatelé a hesla Práce s modulem Auth Auth_HTTP Poznámky
Část V
Ladění, cache a optimalizace
Kapitola 11 Pohledy pod kapotu PHP Od zdrojového souboru k výstupu Jak funguje code cache Jak funguje odlaďovač Některé rozdíly mezi vnitřnostmi PHP 4 a PHP 5 Poznámky Kapitola 12 Profilování a ladění s Xdebug Instalace Xdebug Funkce pro sledování Profily funkcí Vzdálené ladění Poznámky
227 229 229 233 243 245 245 262 263
265 267 268 273 274 275 276 277 277 278 285 287 296
Kapitola 13 Akcelerace s code cache
297
Práce s APC: alternativa k cache PHP Práce s akcelerátorem PHP ionCube Práce s Turck MMCache Srovnávací testy výkonnosti cache Poznámky
298 306 316 326 328
11
Informace o autorovi David Sklar je nezávislý konzultant v oblastech vývoje softwaru a strategické technologie. Je spoluzakladatelem Student.com a TVGrid.com a působil v nich na pozici Chief Technology Officer. V obou firmách David dohlížel na vývoj rozličných systémů, které doručují personalizovaný dynamický obsah uživatelům po celém světě. Poté, co došel v roce 1996 k názoru, že pokud jde o web, je PHP pro jeho programovací potřeby to pravé řešení, vytvořil PX (http://px.sklar.com/), který umožňuje uživatelům PHP vyměňovat si programy. Od té doby se David při svých osobních i profesionálních projektech stále spoléhá na PHP Je také spoluautorem "kuchařky" PHP (PHP Cookbook, vydavatelství O’Reilly, 2002). Když David nesedí u počítače, pojídá koláčky donuts, poslouchá hudbu, a taky rád vaří. Je představitelem The Transparency Project, což je nezisková organizace, která koordinuje standardy značek pro data, a buduje nástroje, které analyzují veřejně dostupné informace o financování politických kampaní. David žije v New York City a vystudoval obor Computer Science na Yaleské univerzitě.
Poděkování Nejvýznačnější a nesmírné díky patří autorům softwaru, o němž kniha pojednává. Těmito autory jsou: Dietrich Ayala, Stig Bakken, Marcus Boerger, Shane Caraveo, Daniel Cowgill, Tomas V.V. Cox, Adam Daniel, Edd Dumbill, James E. Flemer, Chuck Hagenbuch, Richard Heyes, Sterling Hughes, Martin Jansen, Dan Libby, John Lim, Arnaud Limbourg, Nick Lindridge, Bertrand Mansion, Monte Ohrt, Jon Parise, Derick Rethans, Rob Richards, George Schlossnagle, Yavor Shahpasov, Dmitry Stogov, Andrei Zmievski a mnoho dalších přispěvatelů. Díky patří také četným kodérům, architektům, lidem, kteří opravovali chyby v kódu, a ostatním lidem podílejícím se na správě softwaru, kteří všichni dohromady přispěli k tomu, že je dnes PHP tak mocný, i tak populární jazyk. Aby se vydání knihy uskutečnilo, na tom tvrdě pracovalo mnoho lidí z vydavatelství Apress: Martin Streicher (který přišel s nápadem vydat knihu s tímto obsahem), Kylie Johnsonová (která poháněla práce kupředu), Kim Wimpsettová (její korektury vychytaly spoustu chyb), a Doris Wongová (která se postarala o to, aby kniha byla taková, že si ji budou lidé chtít koupit). Kdyby tu nebyla Valerie Perryová, neměla by kniha žádný rejstřík. Obálku vyrobil Kurt Krames. Dík chci také vyjádřit Christine Calderwoodové a Johnu Fergusonovi. Velice oceňuji názory, připomínky, disciplínu a profesionalitu všech, kdo se na knize podíleli. K dokončení knihy kromě toho podstatně přispělo i mnoho lidí, kteří nepracují ve vydavatelství Apress: Stewart Ugelow a Max Goldberg poskytli serverové prostředky, takže jsem mohl software otestovat a připravit pro různá prostředí. Celou knihu pečlivě prošel Adam Trachtenberg, jednotlivé kapitoly prohlédli Bertrand Mansion a George Schlossnagle. A ve zcela samostatné kategorii patří mé díky Susannah, za to, že mi dodávala odvahu a povzbudivě na mě mrkala.
13
Úvod Tento úvod obsahuje informace o tom, komu je kniha určena, co se v ní probírá, a poskytuje něco základních informací o údržbové utilitě, s jejíž pomocí nainstalujete mnohé z doplňků, které se probírají v knize.
Komu je kniha určena Přestože je spousta funkcionality zabudovaná přímo v PHP, mnohé běžné úlohy webového programování se řeší snadněji pomocí modulů doplňků a dodatečných balíků. Poohlížíte-li se po možnostech, jak snadněji řešit následující druhy úloh, je kniha pro vás jako dělaná:
• • • • • • • • •
Přistupovat k nějaké databázi. Generovat robustní webové formuláře. Využívat pro stránky nějaký systém šablon. Vytvářet nebo rozkládat dokumenty XML. Klást požadavky metodami XML-RPC či SOAP, nebo je obsluhovat. Odesílat HTML nebo zprávy elektronické pošty skládající se z několika částí. Ověřovat totožnost uživatelů (autentizace). Prozkoumávat své skripty pomocí nějakého odlaďovače. Zvyšovat výkon serveru, aniž by se musel přepisovat kód.
V knize se předpokládá, že máte základní znalosti programování v jazyku PHP: víte, jak se vkládají soubory, píší vlastní funkce, vytvářejí objekty, i jak se prohledávají $_REQUEST, $_GET, či $_POST, když chcete najít data odeslaná z formuláře. Ovšem, abyste mohli těžit z tipů a z vysvětlujících statí knihy, nemusíte rozhodně být zdatným programátorem PHP. V každé kapitole se probírá v úplnosti a podrobně, jak se nainstalují jeden či dva potřebné moduly, a jak se s nimi pracuje. Každá kapitola také obsahuje celou řadu konkrétních příkladů. Takže, jestliže jste doposud ještě nic neslyšeli o žádném z balíků, které se v knize probírají, je kniha pro vás jako ušitá. Kniha předkládá spoustu vysoce kvalitního kódu PHP, kterým můžete, zdarma, vylepšovat své vlastní programy.
Jakou má kniha strukturu Kniha se skládá z pěti částí a v každé kapitole se probírá jeden nebo více modulů či doplňků, které rozšiřují schopnosti PHP: V první části, "Databáze", se probírají dvě abstraktní databázové vrstvy: v kapitole 1 je to PEAR DB, v kapitole 2 ADODB. Oba balíky poskytují standardní sadu funkcí, s jejichž pomocí se dá rozmlouvat s mnoha druhy databází. To je úplně něco jiného než práce s domácími funkcemi PHP pro přístup k databázím, kdy, například, dotaz na databázi MySQL odesíláte funkcí mysql_query(), kdežto
14 dotaz na databázi Oracle funkcemi ociparse() a ociexecute(). Balík ADODB poskytuje rozhraní podobné standardu ADO společnosti Microsoft pro přístup k datům. Druhá část, "HTML", se podrobně zabývá dvěma balíky, které asistují při řešení běžných úloh generování HTML: HTML_QuickForm v kapitole 3 a Smarty v kapitole 4. HTML_QuickForm spravuje za vás formuláře, zbavuje vás starostí o různé detaily, jako jsou zajištění standardního rozvržení formulářů a zachování standardních hodnot, když se stránka znovu načítá. Smarty je úplný a mocný systém šablon, který vám pomůže oddělit kód aplikace od návrhu stránky. Obsahuje také schopnosti pro práci s cache, jimiž budete moci zefektivnit činnost svých stránek. Ve třetí části, "XML", se prozkoumává rozklad a používání XML v PHP. V kapitole 5 se hovoří o modulu XML_Parser, který poskytuje infrastrukturu pro rozklad založenou na událostech. Kapitoly 6 a 7 se zaobírají s XML-RPC a SOAP, což jsou dva nejpopulárnější formáty založené na XML pro volání vzdálených procedur. Tyto protokoly vám umožní volat funkce, které běží na vzdálených serverech, a okamžitě využít jejich výsledky ve vašich programech PHP. V kapitole 8 se seznámíte se SimpleXML, což je vzrušující rozšíření (jen pro PHP 5), které poskytuje nejpřímější cestu, jak v PHP zpracovávat malé, nepříliš komplikované dokumenty XML. Čtvrtá část, "Networking", se soustřeďuje na dvě úlohy: na odesílání elektronické pošty a na ověřování totožnosti uživatelů (autentizaci). V kapitole 9 se dozvíte, jak snadno se pomocí modulů Mail a Mail_ mime odesílají zprávy elektronické pošty s HTML, s vloženými obrázky, a probírají se zde i další vyspělejší schopnosti. Kapitola 10 ukazuje, jak se dá pomocí modulů Auth a Auth_HTTP implementovat flexibilní řízení přístupu k vašemu webu. V páté části, "Ladění, cache a optimalizace", se podíváme pod kapotu PHP. Kapitola 11 slouží jako přehled interních záležitostí PHP: kroky, jež PHP podniká, když rozkládá a vykonává některý z vašich skriptů jako reakci na nějaký webový požadavek. V kapitole 12 uvidíte Xdebug, což je odlaďovač, který pomáhá diagnostikovat závady v programech. S pomocí Xdebug můžete dokonce pozastavit běh skriptu PHP, abyste mohli prozkoumat proměnné, a podívat se, které funkce se volaly. V kapitole 13 se analyzují tři moduly kódu pro uchovávání kódu v tzv. code cache. Tato rozšíření, také se jim říkává akcelerátory, zvýší rychlost vašeho serveru, aniž byste museli cokoli přepisovat ve svých skriptech.
15
Pošlete nám váš názor Jako čtenáři této knihy se stáváte těmi nejdůležitějšími kritiky a komentátory. Vážíme si vašeho názoru a chtěli bychom znát, co děláme správně, co bychom mohli dělat lépe, ve kterých oblastech bychom měli publikovat a jiné podnětné myšlenky, jež jste nám ochotni sdělit. Jako redaktor vydavatelství Zoner Press vítám vaše názory. Můžete mi poslat e-mail nebo dopis a sdělit mi, co se vám v této knize líbilo nebo nelíbilo, stejně tak, co bychom měli udělat, aby naše další knihy byly lepší. Pokud mi napíšete, prosím, nezapomeňte připojit název knihy, ISBN, jméno autora, vaše jméno, telefon nebo e-mail. Pozorně zhodnotím vaše názory a poskytnu je autorovi a redaktorům, kteří pracovali na této knize. Prosím, vězte, že nemohu pomoci s technickými problémy, které se týkají obsahu knihy, a že díky velkému množství e-mailů, jež dostávám, nemohu zaručit odpověd na každou zprávu. E-mail:
[email protected] Adresa: Zoner Press ZONER software, s. r. o. Miroslav Kučera Koželužská 7 602 00 Brno
Stažení zdrojového kódu Zdrojový kód příkladů uvedených v knize je čtenářům k dispozici ke stažení na webové stránce vydavatelství http://www.zonerpress.cz v sekci Soubory ke stažení, resp. přímo na adrese http://www.zonerpress.cz/download/php5-moduly-rozsireni-akceleratory.zip.
Veškerý zdrojový kód z knihy je zabalený do jediného souboru ZIP. Uvnitř souboru ZIP je samostatná složka pro každou kapitolu knihy (složky kapitol se jmenují Chapter01 až Chapter13). V jednotlivých složkách jsou jako samostatné čisté textové soubory jednotlivé fragmenty kódu i ucelené příklady uvedené v knize.
16
Informace o PEAR PEAR, neboli PHP Extension and Application Repository, je kolekce tříd PHP, která řeší všelijaké užitečné úlohy, jako jsou komunikace se serverem SOAP, nebo vytváření zpráv elektronické pošty s vloženými obrázky. Rozsáhlou výbavu tříd, které jsou součástí PEAR, si můžete prohlédnout na webu PEAR na adrese http://pear.php.net/. Mnohé ze tříd a doplňků, které se probírají v knize, pocházejí právě z PEAR. Manažer balíku PEAR, což je program příkazového řádku s názvem pear, vám pomůže nainstalovat, modernizovat a odstraňovat balíky PEAR. Tento nástroj se spolu s jistými fundamentálními třídami PEAR instaluje jako součást nových instalací PHP. Můžete si je ale také nainstalovat separátně. Zbytek úvodu ukazuje, jak se pracuje s nástrojem pear příkazového řádku.
Instalace PEAR Manažer balíků PEAR se standardně nainstaluje s verzí 4.3.0 PHP a novějšími. Provozujete-li nějakou starší verzi PHP, nebo jste si manažera balíků nenainstalovali s PHP, budete muset podniknout několik kroků, abyste si ho nainstalovali. Konkrétní kroky závisí na tom, na jakém operačním systému pracujete. Na Unixu se pear nejsnadněji nainstaluje tak, že vydáte příkaz: # lynx -source http://go-pear.org/ | php
Tím stáhnete obsah URL http://go-pear.org/ a pošlete získaný obsah, což je skript PHP, do vaší místní binární distribuce PHP. Stažený skript PHP získá program pear a s ním sdružené podpůrné soubory z webu PEAR, nakonfiguruje je a nainstaluje. Nemáte-li nainstalovaný textový prohlížeč lynx, můžete si pear nainstalovat tak, že navštívíte ve svém obvyklém webovém prohlížeči http://go-pear.org/, uložíte zdrojový kód stránky do nějakého souboru, a pak uložený soubor spustíte prostřednictvím PHP. Jestliže jste si, například, uložili zdroj z http://go-pear.org do souboru /tmp/go-pear.php, pak spusťte tohle: # php /tmp/go-pear.php
Na Windows spusťte dávkový soubor go-pear.bat, který se vám nainstaloval do vaší složky PHP. Například: C:\ > c:\php\go-pear.bat
Na Windows také funguje postup uvedený výše, kdy uložíte obsah http://go-pear.org/, a pak spustíte uložený soubor prostřednictvím PHP. Na Unixu i na Windows tímto instalačním procesem nainstalujete manažera pear a jisté nepostradatelné balíky PEAR, které manažer potřebuje, aby mohl fungovat.
Jak se pracuje s manažerem balíků Manažer pear akceptuje řadu příkazů, které provádějí různé akce týkající se správy balíků. Protože pear potřebuje zapisovat do adresářů, do nichž instaluje moduly, často ho budete musit spustit jako
17 root. V knize jsou příkazy, které je třeba spouštět jako root, mezi něž patří následující příkaz pear, uvozeny výzvou #. Příkazy, které můžete spouštět jako běžný uživatel, jsou uvozeny výzvou $. Chcete-li se podívat na seznam dostupných příkazů, spusťte pear bez argumentů: # pear Usage: pearcmd.php [options] command [command-options] <parameters> Type "pearcmd.php help options" to list all options. Type "pearcmd.php help
" to get the help for the specified command. Commands: build
Build an Extension From C Source
bundle
Unpacks a Pecl Package
clear-cache
Clear
config-get
Show One Setting
config-help
Show Information About Setting
config-set
Change Setting
config-show
Show All Settings
cvsdiff
Run a "cvs diff" for all files in a package
XML- RPC Cache
cvstag
Set CVS Release Tag
download
Download Package
download-all
Downloads each available Package from master_server
info
Display information about a package
install
Install Package
list
List Installed Packages
list-all
List All Packages
list-upgrades
List Available Upgrades
login
Connects and authenticates to remote server
logout
Logs out from the remote server
makerpm
Builds an RPM spec file from a PEAR package
package
Build Package
package-dependencies
Show package dependencies
package-validate
Validate Package Consistency
remote-info
Information About Remote Packages
remote-list
List Remote Packages
run-tests
Run Regression Tests
search
Search remote package database
shell-test
Shell Script Test
sign
Sign a package distribution file
uninstall
Un- install Package
upgrade
Upgrade Package
upgrade-all
Upgrade All Packages
18 Mnohé z příkazů, které pear podporuje, jsou prospěšné jen lidem, kteří sami vyrábějí balíky. Zde uvedu pět příkazů, které slouží pro stahování a instalaci balíků: list, install, upgrade, uninstall a help. Chcete-li zjistit, které balíky máte nainstalované, vydejte příkaz pear list: # pear list Installed packages: =================== Package
Version
tate
Archive_Tar
1.1
stable
Console_Getopt 1.0
stable
DB
1.5.0RC1
stable
HTTP
1.2.1
stable
Mail
1.1.0
stable
Net_SMTP
1.2.3
stable
Net_Socket
1.0.1
stable
PEAR
1.3b3
beta
XML_Parser
1.0.1
stable
XML_RPC
1.0.4
stable
Pro každý balík PEAR, který máte nainstalovaný na svém stroji, zobrazí příkaz pear název-balíku, číslo verze nainstalovaného balíku, a stav nainstalované verze; balíky jsou obvykle ve stabilním (stable) stavu, někdy si však budete chtít (nebo muset) nainstalovat alfa nebo betaverzi balíku. Chcete-li ke své instalaci přidat nějaký balík, spusťte pear install. Například, chcete-li si nainstalovat balík Mail_mime, který se probírá v kapitole 9, napište: # pear install Mail_mime downloading Mail_Mime-1.2.1.tar ... Starting to download Mail_Mime-1.2.1.tar (-1 bytes) ..................done: 77,312 bytes install ok: Mail_Mime 1.2.1
Když manažerovi balíků sdělíte, aby něco nainstaloval, manažer stáhne archiv balíku z http://pear. php.net, rozbalí jednotlivé soubor z archivu, a pak je zkopíruje na patřičné místo ve vaší vkládací cestě PHP. Chcete-li si ověřit, kde soubory skončí, vydejte příkaz pear config-get, abyste se podívali na obsah konfigurační proměnné php_dir: # pear config-get php_dir php_dir=/usr/local/lib/php
To znamená, že nové moduly PEAR se budou instalovat do /usr/local/lib/php. Aby mohly některé balíky správně fungovat, potřebují, aby už byly nainstalované jiné balíky. Chcete-li nainstalovat nějaký balík se všemi jeho závislostmi, uveďte v příkazu pear install přepínač
19 -a. Například, balík XML_Beautifier závisí na balíku XML_Util. Budete-li instalovat XML_Beautifier bez přepínače -a, dojde k chybě: # pear install XML_Beautifier downloading XML_Beautifier-1.0.1.tgz ... Starting to download XML_Beautifier-1.0.1.tgz (9,837 bytes) .....done: 9,837 bytes requires package 'XML_Util' >= 0.5 XML_Beautifier: Dependencies failed
Uvedete-li přepínač -a, pear stáhne a nainstaluje také balík XML_Util: # pear install -a XML_Beautifier downloading XML_Beautifier-1.0.1.tgz ... Starting to download XML_Beautifier-1.0.1.tgz (9,837 bytes) .....done: 9,837 bytes downloading XML_Util-0.5.2.tgz ... Starting to download XML_Util-0.5.2.tgz (6,540 bytes) ...done: 6,540 bytes install ok: XML_Util 0.5.2 install ok: XML_Beautifier 1.0.1
Existuje-li nová verze balíku, který už máte nainstalovaný, využijte příkaz upgrade. Příkaz stáhne nejnovější verzi balíku, odstraní nainstalovanou verzi a nainstaluje novější verzi. Příkazu upgrade předejte název balíku, který chcete modernizovat. Například, máte-li nainstalovaný Mail_mime 1.2, na verzi 1.2.1 ho zmodernizujete takto: # pear upgrade Mail_mime downloading Mail_Mime-1.2.1.tgz ... Starting to download Mail_Mime-1.2.1.tgz (15,268 bytes) .....done: 15,268 bytes upgrade ok: Mail_Mime 1.2.1
Jestliže máte nainstalovanou nejnovější dostupnou verzi balíku, upgrade vám to řekne a nic instalovat nebude: # pear upgrade Mail_mime Package 'Mail_Mime-1.2.1' already installed, skipping
Chcete-li nějaký balík odstranit, použijte příkaz uninstall. Odstraní zadaný balík a jeho soubory z vašeho systému. Například, chcete-li odinstalovat balík Mail_mime, vydejte příkaz: # pear uninstall Mail_mime uninstall ok: Mail_Mime
20 Manažer balíků standardně neodinstaluje balík, na kterém závisejí jiné balíky. Na balíku Mail_mime závisí balík SOAP, takže máte-li nainstalovaný SOAP, oznámí vám manažer balíků chybu, pokusíte-li se odinstalovat balík Mail_mime: # pear uninstall Mail_Mime Package 'soap' depends on 'Mail_Mime' uninstall failed
Odinstalování si ale můžete vynutit, když manažerovi balíků sdělíte, aby ignoroval závislosti. V příkazu uninstall uveďte přepínač -n: # pear uninstall -n Mail_mime uninstall ok: Mail_Mime
Chcete-li se dozvědět víc o jednotlivých příkazech pear, vydejte příkaz help. Předejte mu název příkazu, o kterém se chcete dozvědět více informací. Například: # pear help uninstall pearcmd.php uninstall [options] <package> ... Uninstalls one or more PEAR packages.
More than one package may be
specified at once. Options: -n, --nodeps ignore dependencies, uninstall anyway -r, --register-only do not remove files, only register the packages as not installed -R DIR, --installroot=DIR root directory used when installing files (ala PHP's INSTALL_ROOT) --ignore-errors force install even if there were errors
Příkaz help options se hodí zejména tehdy, potřebujete-li si vypsat všechny volby, které akceptují všechny příkazy pear. Patří mezi ně úlohy jako ignorování závislostí balíků, nebo změna adresáře, do kterého má pear ukládat své balíky.