Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
1 / 26
PEAR – Neue Birnen braucht das Lan...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
2 / 26
Agenda
●Vorstellung
●Was ist PEAR?...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
3 / 26
Vorstellung
●Stefan Neufeind, aus ...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
4 / 26
Was ist PEAR?
●"PHP Extension and ...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
5 / 26
Was ist PEAR?
●Einheitliche PHP-Pa...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
6 / 26
Was bietet mir PEAR?
●Vielzahl fer...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
7 / 26
Standards und Regeln
●Einheitliche...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
8 / 26
Standards und Regeln
Wofür?
●Struk...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
9 / 26
PEAR Installer
●Installiert PHP- u...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
10 / 26
PEAR Installer
Live-Demo
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
11 / 26
PEAR Installer
●Neue Version in A...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
12 / 26
PEAR Website
●Katalogisiertes Pak...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
13 / 26
PEAR Website
Live-Demo
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
14 / 26
Paketbeispiel: Mail_Mime
<?php
in...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
15 / 26
Paketbeispiel: MDB2
/* Import ein...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
16 / 26
Paketbeispiel: MDB2
/* Prepared s...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
17 / 26
Paketbeispiel: HTML_QuickForm
req...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
18 / 26
Paketbeispiel: HTML_QuickForm
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
19 / 26
Paketbeispiel: Image_Graph (ab 0....
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
20 / 26
Paketbeispiel: Image_Graph (ab 0....
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
21 / 26
Paketbeispiel: Image_Graph (ab 0....
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
22 / 26
Paketbeispiel: Image_Graph (ab 0....
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
23 / 26
Paketbeispiel: Image_Graph (ab 0....
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
24 / 26
Kontakte
●Mailinglisten
● pear-ge...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
25 / 26
Überblick
Wofür steht PEAR?
●“Ent...
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
26 / 26
Fragen?
Danke für's Zuhören!
Inte...
Nächste SlideShare
Wird geladen in …5
×

PHP-Entwicklung mit PEAR

302 Aufrufe

Veröffentlicht am

Date: 2004-10-27
Location: Frankfurt, Germany
Event: LinuxWorld Conference & Expo

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
302
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

PHP-Entwicklung mit PEAR

  1. 1. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 1 / 26 PEAR – Neue Birnen braucht das Land Willkommen! PHP-Entwicklung mit PEAR Stefan Neufeind <neufeind@php.net> LinuxWorld Conference & Expo Frankfurt, 2004-06-27 Creative Commons Attribution-ShareAlike License
  2. 2. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 2 / 26 Agenda ●Vorstellung ●Was ist PEAR? ●Was bietet mir PEAR? ●Standards und Regeln ●PEAR Installer ●PEAR Website ●Paketbeispiele ●Kontakte ●Überblick ●Fragen
  3. 3. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 3 / 26 Vorstellung ●Stefan Neufeind, aus Neuss (bei Düsseldorf) ●Consultant und Entwickler für SpeedPartner ●Seit einigen Jahren “überzeugter” PHP-Entwickler ●PEAR-Pakete: ● Image_Graph ● Net_Traceroute ● HTTP_Session ● Validate ●PEAR DEV / QA / DOC
  4. 4. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 4 / 26 Was ist PEAR? ●"PHP Extension and Application Repository" ●Umfangreiche Sammlung von PHP-Komponenten ● Objektorientiert ● Flexibel ● Modular ● Hohe Qualität ●Gegründet 1999 von Stig S. Bakken ●Mehr als 350 Pakete, 700 registrierte Entwickler ●Community-Struktur
  5. 5. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 5 / 26 Was ist PEAR? ●Einheitliche PHP-Paket-Infrastruktur ●Vermeidung von redundantem Code (über Abhängigkeiten) ●Definierte Standards ●Flexibile Verwendung der Komponenten
  6. 6. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 6 / 26 Was bietet mir PEAR? ●Vielzahl fertiger Komponenten ●Einfache Installation und Verwaltung ●Installer für PEAR-Pakete, eigene Pakete und “3rd party”-Pakete (z.B. phpOpenTracker, Horde-Framework) ●“Framework” für weitere Entwicklungen ●Einheitliche Basis (z.B. error-handling)
  7. 7. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 7 / 26 Standards und Regeln ●Einheitlicher Coding-Style ●Definierte Paket-Stati (devel, alpha, beta, stable) ●Standard für Versionsionierung ●Dokumentations-Standard (PHPDoc) ●Standard für Unit-Tests (PHP_Unit)
  8. 8. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 8 / 26 Standards und Regeln Wofür? ●Strukturierte Entwicklung ●Qualität, Wartbarkeit ●Einfachere Handhabung ●Flexibles und “generisches” API-Design gefördert
  9. 9. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 9 / 26 PEAR Installer ●Installiert PHP- und C-Pakete ●Kommunikation per XML_RPC ●Mitgeliefert seit PHP 4.3.0 ●Auch einfache Nach-Installation: ● http://go-pear.org/ ● Linux: lynx -source http://go-pear.org/ | php -q) ● Browser-Installation möglich ●Oberflächen für Konsole, Web, GTK
  10. 10. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 10 / 26 PEAR Installer Live-Demo
  11. 11. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 11 / 26 PEAR Installer ●Neue Version in Arbeit: ● Channel-Support ● Erweiterte Paket-Mechanismen ● Automatische Abhängigkeitsauflösung ●Pläne: ● Datenbank-Unterstützung ● Webroot-Installation ● Paket-Signaturen ● Weitere, alternative Frontends
  12. 12. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 12 / 26 PEAR Website ●Katalogisiertes Paket-Archiv ●Programmierer-Kontakte ●Bugtracker ●Dokumentation ●Support-Links (Mailinglisten, Chat, Tutorials, Präsentationen) ●Installer-Backend (XML_RPC) ●PEAR Proposal-System (PEPr) ●Entwickler-Funktionen
  13. 13. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 13 / 26 PEAR Website Live-Demo
  14. 14. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 14 / 26 Paketbeispiel: Mail_Mime <?php include('Mail.php'); include('Mail/mime.php'); $text = 'Text version of email'; $html = '<html><body>HTML version of email</body></html>'; $file = '/home/richard/example.php'; $crlf = "n"; $hdrs = array('From' => 'you@yourdomain.com', 'Subject' => 'Test mime message' ); $mime = new Mail_mime($crlf); $mime->setTXTBody($text); $mime->setHTMLBody($html); $mime->addAttachment($file, 'text/plain'); $body = $mime->get(); $hdrs = $mime->headers($hdrs); $mail =& Mail::factory('mail'); $mail->send('postmaster@localhost', $hdrs, $body); ?>
  15. 15. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 15 / 26 Paketbeispiel: MDB2 /* Import eines XML-Schema */ MDB2::loadFile('Tools/Manager'); $manager =& new MDB2_Tools_Manager; $input_file = 'metapear_test_db.schema'; $manager->connect($db); $manager->updateDatabase($input_file, $input_file.'.before'); /* Einfache Selects */ $db->setDatabase($db_name); $query = 'SELECT * FROM test'; $result = $db->query($query); $array = $result->fetchRow(); $result->free(); $array = $db->queryAll($query);
  16. 16. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 16 / 26 Paketbeispiel: MDB2 /* Prepared statements */ $alldata = array( array(1, 'one', 'un'), array(2, 'two', 'deux'), array(3, 'three', 'trois'), array(4, 'four', 'quatre') ); $prepared_query = $db->prepare('INSERT INTO numbers VALUES(?,?,?)', array('integer', 'text', 'text')); foreach ($alldata as $row) { echo('running execute<br>'); $db->executeParams($prepared_query, null, $row); } /* Subselects */ $sub_select = $db->subSelect('SELECT test_name from test WHERE test_name = '. $db->quote('gummihuhn', 'text'), 'text'); $query_with_subselect = 'SELECT * FROM test WHERE test_name IN '. '('.$sub_select.')'; $result = $db->query($query_with_subselect); $array = $result->fetchAll(); $result->free();
  17. 17. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 17 / 26 Paketbeispiel: HTML_QuickForm require_once 'HTML/QuickForm.php'; $form = new HTML_QuickForm('firstForm'); $form->setDefaults(array('name' => 'Joe User')); $form->addElement('header', null, 'QuickForm tutorial example'); $form->addElement('text', 'name', 'Enter your name:', array('size' => 50, 'maxlength' => 255)); $form->addElement('submit', null, 'Send'); $form->applyFilter('name', 'trim'); $form->addRule('name', 'Please enter your name', 'required', null, 'client'); if ($form->validate()) { echo '<h1>Hello, ' . htmlspecialchars($form->exportValue('name')). '!</h1>'; exit; } $form->display();
  18. 18. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 18 / 26 Paketbeispiel: HTML_QuickForm
  19. 19. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 19 / 26 Paketbeispiel: Image_Graph (ab 0.3.0dev1) $Graph =& Image_Graph::factory('graph', array(800, 600)); $Arial =& $Graph->addNew('ttf_font', 'arial.ttf'); $Arial->setSize(18); $Arial1 =& $Graph->addNew('ttf_font', 'arial.ttf'); $Arial1->setSize(14); $Arial1->setAngle(90); $Arial2 =& $Graph->addNew('ttf_font', 'arial.ttf'); $Arial2->setSize(14); $Arial2->setAngle(270); $Arial3 =& $Graph->addNew('ttf_font', 'arial.ttf'); $Arial3->setSize(12); $Graph->add( Image_Graph::vertical( Image_Graph::factory('title', array('German Car Popularity', &$Arial)), Image_Graph::horizontal( Image_Graph::factory('title', array('Popularity', &$Arial1)), Image_Graph::horizontal( Image_Graph::vertical( $Plotarea = Image_Graph::factory('plotarea'), $Legend = Image_Graph::factory('legend'), 95 ), Image_Graph::factory('title', array('Defects / 1000 units', &$Arial2)), 95 ), 7 ), 5 ) );
  20. 20. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 20 / 26 Paketbeispiel: Image_Graph (ab 0.3.0dev1) $Legend->setPlotArea($Plotarea); $Legend->setFont($Arial3); $Dataset =& Image_Graph::factory('dataset'); $Dataset->addPoint('Audi', 100); $Dataset->addPoint('Mercedes', 41); $Dataset->addPoint('Porsche', 78); $Dataset->addPoint('BMW', 12); $Dataset2 =& Image_Graph::factory('dataset'); $Dataset2->addPoint('Audi', 10); $Dataset2->addPoint('Mercedes', 17); $Dataset2->addPoint('Porsche', 12); $Dataset2->addPoint('BMW', 21); $GridY =& $Plotarea->addNew('bar_grid', null, IMAGE_GRAPH_AXIS_Y); $GridY->setFillStyle(Image_Graph::factory('gradient', array(IMAGE_GRAPH_GRAD_VERTICAL, 'white', 'lightgrey'))); $Plot =& $Plotarea->addNew('bar', array(&$Dataset, 'normal', 'Popularity')); $FillArray =& Image_Graph::factory('Image_Graph_Fill_Array'); $Plot->setFillStyle($FillArray); $FillArray->addNew('gradient', array(IMAGE_GRAPH_GRAD_VERTICAL, 'green', 'white')); $FillArray->addNew('gradient', array(IMAGE_GRAPH_GRAD_VERTICAL, 'blue', 'white')); $FillArray->addNew('gradient', array(IMAGE_GRAPH_GRAD_VERTICAL, 'yellow', 'white')); $FillArray->addNew('gradient', array(IMAGE_GRAPH_GRAD_VERTICAL, 'red', 'white')); $FillArray->addNew('gradient', array(IMAGE_GRAPH_GRAD_VERTICAL, 'orange', 'white'));
  21. 21. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 21 / 26 Paketbeispiel: Image_Graph (ab 0.3.0dev1) $Marker =& $Graph->addNew('Image_Graph_Marker_Array'); $Marker->addNew('Image_Graph_Marker_Icon', './images/audi.png'); $Marker->addNew('Image_Graph_Marker_Icon', './images/mercedes.png'); $Marker->addNew('Image_Graph_Marker_Icon', './images/porsche.png'); $Marker->addNew('Image_Graph_Marker_Icon', './images/bmw.png'); $Plot->setMarker($Marker); $Plot2 =& $Plotarea->addNew('line', array(&$Dataset2, 'normal', 'Defects'), IMAGE_GRAPH_AXIS_Y_SECONDARY); $Plot2->setLineColor('blue@0.4'); $Marker =& $Graph->addNew('Image_Graph_Marker_Value', IMAGE_GRAPH_VALUE_Y); $Plot2->setMarker($Marker); $Marker->setFont($Arial3); $Marker->setPadding(7); $AxisX =& $Plotarea->getAxis(IMAGE_GRAPH_AXIS_X); $AxisX->setFont($Arial3); $AxisY =& $Plotarea->getAxis(IMAGE_GRAPH_AXIS_Y); $AxisY->setDataPreprocessor(Image_Graph::factory ('Image_Graph_DataPreprocessor_Formatted', '%0.0f%%')); $AxisY->forceMaximum(105); $AxisY->setFont($Arial3); $AxisY =& $Plotarea->getAxis(IMAGE_GRAPH_AXIS_Y_SECONDARY); $AxisY->setFont($Arial3); $Graph->done();
  22. 22. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 22 / 26 Paketbeispiel: Image_Graph (ab 0.3.0dev1)
  23. 23. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 23 / 26 Paketbeispiel: Image_Graph (ab 0.3.0dev1) Anderes Beispiel:
  24. 24. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 24 / 26 Kontakte ●Mailinglisten ● pear-general@php.net ● pear-dev@php.net ●IRC (#pear@EFnet) ●Direkte Kontakte zu den Entwicklern ●Dokumentations-Team (pear-doc@lists.php.net) ●QA-Team (pear-qa@lists.php.net) ●PEAR group (pear-group@php.net) für Öffentlichkeitsarbeit etc.
  25. 25. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 25 / 26 Überblick Wofür steht PEAR? ●“Enterprise-ready” / Hohe Qualität ●Verbesserte Sicherheit und Flexibilität durch “100 Augen sehen mehr als 2”-Effekt ●Support durch die Community ●Einfache Paket-Verwaltung ●100% freie Lizenzen (PHP license, LGPL, ... - keine GPL) ●Mitarbeit erwünscht (!)
  26. 26. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 26 / 26 Fragen? Danke für's Zuhören! Interesse geweckt? Fragen? Kritik? Stefan Neufeind <neufeind@php.net> Vortrag online: http://pear.speedpartner.de/

×