PHP Extension und Application Repository PEAR PHP Extension und Application Repository 16.11.2005 Marco Behnke - PEAR
global $presentation; $body->load_brain( <?php global $presentation; $body->load_brain( $presentation->get_content() ); $body->getBrain()->calculate(); ?> 16.11.2005 Marco Behnke - PEAR
Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung 16.11.2005 Marco Behnke - PEAR
Historische Highlights 1999-11-21 : Malin Bakken was born 1999-11-22 : the first few lines of PEAR code were committed (DB.php) 2000-07-24 : the PEAR and PEAR_Error classes were born 2000-08-01 : first working version of the "pear" command 2001-05-15 : first contributor to base system 2001-12-28 : first package uploaded to the current pear.php.net 2002-05-26 : installer can upgrade itself 2002-06-13 : first version of Gtk installer 2002-07-11 : first version of Web installer erdacht von Stig Bakken, gewidmet seiner erstgeborenen Tochter 16.11.2005 Marco Behnke - PEAR
Historische Highlights Januar 2003: PEAR 1.0 wird mit PHP 4.3.0 veröffentlicht 2005: aktuelle Version PEAR 1.4 erdacht von Stig Bakken, gewidmet seiner erstgeborenen Tochter 16.11.2005 Marco Behnke - PEAR
Motivation viele Entwickler weltweit produzieren und verbreiten dezentral Code keine vernünftige Versionshistorie kein Codestandard nur schwer wartbar keine zentrale Anlaufstelle eine Erweiterung für die PHP Scriptsprache, eingebunden eine Ansammlung von Applikationen / Module 16.11.2005 Marco Behnke - PEAR
Was ist PEAR? PHP Extension Application Repository 16.11.2005 eine Erweiterung für die PHP Scriptsprache, eingebunden eine Ansammlung von Applikationen / Module 16.11.2005 Marco Behnke - PEAR
Was ist PEAR? geordnete Bibliothek mit offenem Quellcode Infrastruktur für den Betrieb von Quellcode einheitlicher Quellcodestil PHP Foundation Classes PHP Extension Community Library Quellcodestil für Kontrollstrukturen, Kommentare, Funktionsdeklarationen etc.... Wozu? Codewartung PHP Foundation Classes: hohe Qualität/stable. Auf weite Sicht nur noch diese in PHP Distribution, Packages unabhängig vom Umfeld, kombinierbar, verträgliche Schnittstelle, Abwärts und Vorwärtskompatibilität PECL Sub-Repository von PEAR für Erweiterungen in C, wie sie mit PHP4 vertrieben werden 16.11.2005 Marco Behnke - PEAR
Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung 16.11.2005 Marco Behnke - PEAR
Installation/Konfiguration (1) ab PHP 4.3.x bereits enthalten vor Version 4.3.x Linux lynx -source http://go-pear.org/ | php vor Version 4.3.x Windows c:\php\go-pear.bat aktualisiere über http://go-pear.org/ php go-pear.php der PEAR Maneger ist abr Version 4.3.x bereits enthalten, eventuell jedoch deaktiviert --without-pear Zur Installation unter Linux oben stehendes Skript ausführen Installation unter Windows durch Download / Batchdatei aktualisieren über Webseitenaufruf und speichern go-pear.php und anschließenden Aufruf über PHP 16.11.2005 Marco Behnke - PEAR
Installation/Konfiguration (2) CLI Installer für Packagedownload pear install <package> (analog dazu upgrade und uninstall) pear remote-list pear install <file>.tgz der PEAR Maneger ist abr Version 4.3.x bereits enthalten, eventuell jedoch deaktiviert --without-pear Zur Installation unter Linux oben stehendes Skript ausführen Installation unter Windows durch Download / Batchdatei aktualisieren über Webseitenaufruf und speichern go-pear.php und anschließenden Aufruf über PHP 16.11.2005 Marco Behnke - PEAR
pear vs. pear-core pear-core wird mit PHP ausgeliefert pear-core umfasste ursprüngliche alle Packages neue Packages gelangen zukünftig in neue Verzeichnisse pear-core umfasst nur noch den Packagemanager 16.11.2005 Marco Behnke - PEAR
Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung 16.11.2005 Marco Behnke - PEAR
Einsatzbereich / Was kann es? Zugriff auf Packages eigene Packageentwicklung Versionsverwaltung der Packages Niemand muss das Rad neu erfinden Einsatz in kleinen, wie in großen Projekten 16.11.2005 Marco Behnke - PEAR
PEAR Packages Authentication Benchmarking Caching Configuration Console Database Date and Time Encryption Event File Formats File System Gtk HTML HTTP Images Internationalization Logging Mail Math Networking Numbers Payment PEAR PHP Science Streams Structures System Text Tools and Utilities XML Web Services 16.11.2005 Marco Behnke - PEAR
Statistik Total Categories: 41 Total Packages: 485 Total Releases: 2,592 Total Downloads: 17,813,385 16.11.2005 Marco Behnke - PEAR
Lizenzen unter PEAR PHP Lizenz Apache Lizenz LGPL BSD 16.11.2005 Marco Behnke - PEAR
Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung 16.11.2005 Marco Behnke - PEAR
Net_POP3 Net_POP3::Net_POP3() Net_POP3::connect() Net_POP3::deleteMsg() Net_POP3::disconnect() Net_POP3::getBody() Net_POP3::getListing() Net_POP3::getMsg() Net_POP3::getParsedHeaders() Net_POP3::getRawHeaders() Net_POP3::getSize() Net_POP3::login() Net_POP3::numMsg() 16.11.2005 Marco Behnke - PEAR
einfaches pop3-Beispiel <?php include('Net_POP3.php'); $pop3 =& new Net_POP3(); // Zu Server verbinden $pop3->connect('localhost', 110); $pop3->login('richard', 'Alien3'); // die erste Nachricht abrufen $msg_head = $pop3->getParsedHeaders(1); $msg_body = $pop3->getBody(1)); // Postfachübersicht $msg_list = $pop3->getListing(); // Verbindung beenden $pop3->disconnect(); ?> einfaches pop3-Beispiel 16.11.2005 Marco Behnke - PEAR
einfaches Beispiel mit Net_FTP <?php // package einbinden und ftp Verbindung aufbauen require_once 'Net/FTP.php'; $test = new Net_FTP('ftp.mydomain.com', 21); $test->connect('192.168.0.1', 21); // daten holen var_dump($test->get('foo/bar.zip', '/tmp/downloaded.zip', true, FTP_BINARY)); // disconnect $test->disconnect(); ?> einfaches Beispiel mit Net_FTP 16.11.2005 Marco Behnke - PEAR
Eigene Klasse in PEAR <?php require_once "PEAR.php"; class My_Class extends PEAR { var $_str; // private function My_Class($str) // constructor $this->PEAR(); $this->_str = $str; } function _My_Class() // destructor $this->_PEAR(); ?> Eigene Klasse in PEAR 16.11.2005 Marco Behnke - PEAR
class: PEAR definiert Standardverhalten der PEAR Klassen Konstruktor Destruktor (nn) Fehlerbehandlung 16.11.2005 Marco Behnke - PEAR
Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung 16.11.2005 Marco Behnke - PEAR
Zusammenfassung definiert coding style gemeinsames Repository für Packageverwaltung PHP Foundation Classes und PECL einfacher Zugriff auf die Verwaltung 16.11.2005 Marco Behnke - PEAR
Vor- / Nachteile zentrale Ansprechpartner (Support / Feature Request) Wartbarkeit durch Codestandard zentrale Sammelstelle für Erweiterungen Versionsänderungen an Modulen führen evtl. zu anderem / falschen Verhalten 16.11.2005 Marco Behnke - PEAR
Vielen Dank für Ihre Aufmerksamkeit <?php return 0; ?> 16.11.2005 Marco Behnke - PEAR