Upload
minna-radden
View
112
Download
0
Embed Size (px)
Citation preview
16.11.2005 Marco Behnke - PEAR 1
PEAR
PHP Extension und Application Repository
16.11.2005 Marco Behnke - PEAR 2
<?phpglobal $presentation;$body->load_brain(
$presentation->get_content());$body->getBrain()->calculate();
?>
16.11.2005 Marco Behnke - PEAR 3
Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung
16.11.2005 Marco Behnke - PEAR 4
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
16.11.2005 Marco Behnke - PEAR 5
Historische Highlights Januar 2003: PEAR 1.0 wird mit
PHP 4.3.0 veröffentlicht 2005: aktuelle Version PEAR 1.4
16.11.2005 Marco Behnke - PEAR 6
Motivation viele Entwickler weltweit
produzieren und verbreiten dezentral Code keine vernünftige Versionshistorie kein Codestandard nur schwer wartbar keine zentrale Anlaufstelle
16.11.2005 Marco Behnke - PEAR 7
Was ist PEAR? PHP Extension Application Repository
16.11.2005 Marco Behnke - PEAR 8
Was ist PEAR? geordnete Bibliothek mit offenem
Quellcode Infrastruktur für den Betrieb von
Quellcode einheitlicher Quellcodestil PHP Foundation Classes PHP Extension Community Library
16.11.2005 Marco Behnke - PEAR 9
Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung
16.11.2005 Marco Behnke - PEAR 10
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
16.11.2005 Marco Behnke - PEAR 11
Installation/Konfiguration (2) CLI Installer für Packagedownload
pear install <package> (analog dazu upgrade und uninstall)
pear remote-list pear install <file>.tgz
16.11.2005 Marco Behnke - PEAR 12
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 13
Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung
16.11.2005 Marco Behnke - PEAR 14
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 15
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 16
Statistik Total Categories: 41 Total Packages: 485 Total Releases: 2,592 Total Downloads: 17,813,385
16.11.2005 Marco Behnke - PEAR 17
Lizenzen unter PEAR PHP Lizenz Apache Lizenz LGPL BSD
16.11.2005 Marco Behnke - PEAR 18
Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung
16.11.2005 Marco Behnke - PEAR 19
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 20
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();
?>
16.11.2005 Marco Behnke - PEAR 21
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();
?>
16.11.2005 Marco Behnke - PEAR 22
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();
}
}
?>
16.11.2005 Marco Behnke - PEAR 23
class: PEAR definiert Standardverhalten der
PEAR Klassen Konstruktor Destruktor (nn) Fehlerbehandlung
16.11.2005 Marco Behnke - PEAR 24
Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung
16.11.2005 Marco Behnke - PEAR 25
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 26
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 27
Vielen Dank für Ihre Aufmerksamkeit
<?phpreturn 0;
?>