27
16.11.2005 Marco Behnke - PEAR 1 PEAR PHP Extension und Application Repository

16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

Embed Size (px)

Citation preview

Page 1: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

16.11.2005 Marco Behnke - PEAR 1

PEAR

PHP Extension und Application Repository

Page 2: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

16.11.2005 Marco Behnke - PEAR 2

<?phpglobal $presentation;$body->load_brain(

$presentation->get_content());$body->getBrain()->calculate();

?>

Page 3: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

16.11.2005 Marco Behnke - PEAR 3

Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung

Page 4: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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

Page 5: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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

Page 6: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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

Page 7: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

16.11.2005 Marco Behnke - PEAR 7

Was ist PEAR? PHP Extension Application Repository

Page 8: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und 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

Page 9: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

16.11.2005 Marco Behnke - PEAR 9

Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung

Page 10: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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

Page 11: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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

Page 12: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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

Page 13: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

16.11.2005 Marco Behnke - PEAR 13

Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung

Page 14: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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

Page 15: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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

Page 16: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

16.11.2005 Marco Behnke - PEAR 16

Statistik Total Categories: 41 Total Packages: 485 Total Releases: 2,592 Total Downloads: 17,813,385

Page 17: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

16.11.2005 Marco Behnke - PEAR 17

Lizenzen unter PEAR PHP Lizenz Apache Lizenz LGPL BSD

Page 18: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

16.11.2005 Marco Behnke - PEAR 18

Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung

Page 19: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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()

Page 20: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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();

?>

Page 21: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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();

?>

Page 22: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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();

}

}

?>

Page 23: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

16.11.2005 Marco Behnke - PEAR 23

class: PEAR definiert Standardverhalten der

PEAR Klassen Konstruktor Destruktor (nn) Fehlerbehandlung

Page 24: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

16.11.2005 Marco Behnke - PEAR 24

Gliederung Was ist PEAR? Installation / Konfiguration Einsatzbereich / Was kann es? Beispiele Zusammenfassung

Page 25: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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

Page 26: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

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

Page 27: 16.11.2005Marco Behnke - PEAR1 PEAR PHP Extension und Application Repository

16.11.2005 Marco Behnke - PEAR 27

Vielen Dank für Ihre Aufmerksamkeit

<?phpreturn 0;

?>