SlideShare ist ein Scribd-Unternehmen logo
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
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
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
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
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
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)
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)
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
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
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 Arbeit:
● Channel-Support
● Erweiterte Paket-Mechanismen
● Automatische Abhängigkeitsauflösung
●Pläne:
● Datenbank-Unterstützung
● Webroot-Installation
● Paket-Signaturen
● Weitere, alternative Frontends
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
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
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);
?>
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);
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();
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();
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.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
)
);
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'));
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();
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
22 / 26
Paketbeispiel: Image_Graph (ab 0.3.0dev1)
Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR
23 / 26
Paketbeispiel: Image_Graph (ab 0.3.0dev1)
Anderes Beispiel:
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.
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 (!)
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/

Weitere ähnliche Inhalte

Andere mochten auch

Unidad 4 Resumen Interfaz H - M
Unidad 4 Resumen Interfaz H - MUnidad 4 Resumen Interfaz H - M
Unidad 4 Resumen Interfaz H - M
Infectedalex
 
Els sentits dels sentits
Els sentits dels sentitsEls sentits dels sentits
Els sentits dels sentits
itziararruebo4431
 
1ºp.arv.trestrimestres
1ºp.arv.trestrimestres1ºp.arv.trestrimestres
1ºp.arv.trestrimestres
Beatriz Martinez
 
Presentación wiki como usar nuestra wki2
Presentación wiki como usar nuestra wki2Presentación wiki como usar nuestra wki2
Presentación wiki como usar nuestra wki2
Edgar0622
 
5 requisitos estudiar examen lunes
5 requisitos estudiar examen lunes5 requisitos estudiar examen lunes
5 requisitos estudiar examen lunes
TRABAJO PARA EL REINO DE LOS CIELOS
 
prueba
pruebaprueba
Nociones de probabilidades
Nociones de probabilidadesNociones de probabilidades
Nociones de probabilidades
oneliafernandez
 
Riesgoquimico
RiesgoquimicoRiesgoquimico
Riesgoquimico
Nestor Solis
 
Responsabilidad social
Responsabilidad socialResponsabilidad social
Responsabilidad socialrafa8219
 
Seguridad en las redes sociales
Seguridad en las redes socialesSeguridad en las redes sociales
Seguridad en las redes sociales
Edgar0622
 
coremanager® - planen, buchen, managen
coremanager® - planen, buchen, managencoremanager® - planen, buchen, managen
coremanager® - planen, buchen, managen
Filipe Felix
 
Bizkaia castellano 2015-16
Bizkaia  castellano 2015-16Bizkaia  castellano 2015-16
Bizkaia castellano 2015-16
Maite Adbeitia
 
Proyecto de tic en matematicas
Proyecto de tic en matematicasProyecto de tic en matematicas
Proyecto de tic en matematicas
Johamn Albarracin
 
Diapositivas aborto
Diapositivas abortoDiapositivas aborto
Diapositivas aborto
ratona13
 
Plan de Actuación Municipal 2013
Plan de Actuación Municipal 2013 Plan de Actuación Municipal 2013
Plan de Actuación Municipal 2013
Pepe Sánchez Vigara
 
Big data mc_05_2014_long
Big data mc_05_2014_longBig data mc_05_2014_long
Big data mc_05_2014_longAxel Poestges
 
Eficiencia Energetica, software de gestion
Eficiencia Energetica, software de gestionEficiencia Energetica, software de gestion
Eficiencia Energetica, software de gestion
Artequim . com Ltda.
 
Volcanes
VolcanesVolcanes
Ratgeber Katastrophenhilfe - im Notfall besser helfen!
Ratgeber Katastrophenhilfe - im Notfall besser helfen!Ratgeber Katastrophenhilfe - im Notfall besser helfen!
Ratgeber Katastrophenhilfe - im Notfall besser helfen!
PHINEO gemeinnützige AG
 
2413 RICHMOUND RD. SW
2413 RICHMOUND RD. SW2413 RICHMOUND RD. SW
2413 RICHMOUND RD. SWEbi Abdi
 

Andere mochten auch (20)

Unidad 4 Resumen Interfaz H - M
Unidad 4 Resumen Interfaz H - MUnidad 4 Resumen Interfaz H - M
Unidad 4 Resumen Interfaz H - M
 
Els sentits dels sentits
Els sentits dels sentitsEls sentits dels sentits
Els sentits dels sentits
 
1ºp.arv.trestrimestres
1ºp.arv.trestrimestres1ºp.arv.trestrimestres
1ºp.arv.trestrimestres
 
Presentación wiki como usar nuestra wki2
Presentación wiki como usar nuestra wki2Presentación wiki como usar nuestra wki2
Presentación wiki como usar nuestra wki2
 
5 requisitos estudiar examen lunes
5 requisitos estudiar examen lunes5 requisitos estudiar examen lunes
5 requisitos estudiar examen lunes
 
prueba
pruebaprueba
prueba
 
Nociones de probabilidades
Nociones de probabilidadesNociones de probabilidades
Nociones de probabilidades
 
Riesgoquimico
RiesgoquimicoRiesgoquimico
Riesgoquimico
 
Responsabilidad social
Responsabilidad socialResponsabilidad social
Responsabilidad social
 
Seguridad en las redes sociales
Seguridad en las redes socialesSeguridad en las redes sociales
Seguridad en las redes sociales
 
coremanager® - planen, buchen, managen
coremanager® - planen, buchen, managencoremanager® - planen, buchen, managen
coremanager® - planen, buchen, managen
 
Bizkaia castellano 2015-16
Bizkaia  castellano 2015-16Bizkaia  castellano 2015-16
Bizkaia castellano 2015-16
 
Proyecto de tic en matematicas
Proyecto de tic en matematicasProyecto de tic en matematicas
Proyecto de tic en matematicas
 
Diapositivas aborto
Diapositivas abortoDiapositivas aborto
Diapositivas aborto
 
Plan de Actuación Municipal 2013
Plan de Actuación Municipal 2013 Plan de Actuación Municipal 2013
Plan de Actuación Municipal 2013
 
Big data mc_05_2014_long
Big data mc_05_2014_longBig data mc_05_2014_long
Big data mc_05_2014_long
 
Eficiencia Energetica, software de gestion
Eficiencia Energetica, software de gestionEficiencia Energetica, software de gestion
Eficiencia Energetica, software de gestion
 
Volcanes
VolcanesVolcanes
Volcanes
 
Ratgeber Katastrophenhilfe - im Notfall besser helfen!
Ratgeber Katastrophenhilfe - im Notfall besser helfen!Ratgeber Katastrophenhilfe - im Notfall besser helfen!
Ratgeber Katastrophenhilfe - im Notfall besser helfen!
 
2413 RICHMOUND RD. SW
2413 RICHMOUND RD. SW2413 RICHMOUND RD. SW
2413 RICHMOUND RD. SW
 

Ähnlich wie PHP-Entwicklung mit PEAR

NetBeans für PHP-Entwickler
NetBeans für PHP-EntwicklerNetBeans für PHP-Entwickler
NetBeans für PHP-Entwickler
Ingo Reinhart
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge
Karin Patenge
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
NETWAYS
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Gunther Pippèrr
 
Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)
Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)
Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)
NETWAYS
 
OSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
OSDC 2011 | FAI - Fully Automatic Installation by Thomas LangeOSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
OSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
NETWAYS
 
Drupal Basics (7-8) Vortrag (01.2016)
Drupal Basics (7-8) Vortrag (01.2016)Drupal Basics (7-8) Vortrag (01.2016)
Drupal Basics (7-8) Vortrag (01.2016)
Peter_Majmesku
 
Puppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes TeamPuppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes TeamNETWAYS
 
OSMC 2009 | Entwicklung von Nagios-Plugins mit Net::SNMP und Nagios::Plugin b...
OSMC 2009 | Entwicklung von Nagios-Plugins mit Net::SNMP und Nagios::Plugin b...OSMC 2009 | Entwicklung von Nagios-Plugins mit Net::SNMP und Nagios::Plugin b...
OSMC 2009 | Entwicklung von Nagios-Plugins mit Net::SNMP und Nagios::Plugin b...
NETWAYS
 
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
Matthias Praunegger
 
Übersicht Skriptsprachen
Übersicht SkriptsprachenÜbersicht Skriptsprachen
Übersicht Skriptsprachen
A. LE
 
PHAR better Tools
PHAR better ToolsPHAR better Tools
PHAR better Tools
PHP in DD
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
 
node.js - Eine kurze Einführung
node.js - Eine kurze Einführungnode.js - Eine kurze Einführung
node.js - Eine kurze Einführung
nodeio
 
Nagios Conference 2007 | Vorstellung des Graph Tools PNP by Jörg Linge
Nagios Conference 2007 | Vorstellung des Graph Tools PNP by Jörg LingeNagios Conference 2007 | Vorstellung des Graph Tools PNP by Jörg Linge
Nagios Conference 2007 | Vorstellung des Graph Tools PNP by Jörg Linge
NETWAYS
 
PHP5 und Oracle
PHP5 und OraclePHP5 und Oracle
PHP5 und Oracle
Mayflower GmbH
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauen
Schlomo Schapiro
 
IPC 2015 Zend Framework 3 Reloaded
IPC 2015 Zend Framework 3 ReloadedIPC 2015 Zend Framework 3 Reloaded
IPC 2015 Zend Framework 3 Reloaded
Ralf Eggert
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbinden
Aptly GmbH
 

Ähnlich wie PHP-Entwicklung mit PEAR (20)

NetBeans für PHP-Entwickler
NetBeans für PHP-EntwicklerNetBeans für PHP-Entwickler
NetBeans für PHP-Entwickler
 
Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
 
Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)
Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)
Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)
 
OSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
OSDC 2011 | FAI - Fully Automatic Installation by Thomas LangeOSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
OSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
 
Drupal Basics (7-8) Vortrag (01.2016)
Drupal Basics (7-8) Vortrag (01.2016)Drupal Basics (7-8) Vortrag (01.2016)
Drupal Basics (7-8) Vortrag (01.2016)
 
Puppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes TeamPuppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes Team
 
OSMC 2009 | Entwicklung von Nagios-Plugins mit Net::SNMP und Nagios::Plugin b...
OSMC 2009 | Entwicklung von Nagios-Plugins mit Net::SNMP und Nagios::Plugin b...OSMC 2009 | Entwicklung von Nagios-Plugins mit Net::SNMP und Nagios::Plugin b...
OSMC 2009 | Entwicklung von Nagios-Plugins mit Net::SNMP und Nagios::Plugin b...
 
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
 
Übersicht Skriptsprachen
Übersicht SkriptsprachenÜbersicht Skriptsprachen
Übersicht Skriptsprachen
 
PHAR better Tools
PHAR better ToolsPHAR better Tools
PHAR better Tools
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
 
node.js - Eine kurze Einführung
node.js - Eine kurze Einführungnode.js - Eine kurze Einführung
node.js - Eine kurze Einführung
 
Nagios Conference 2007 | Vorstellung des Graph Tools PNP by Jörg Linge
Nagios Conference 2007 | Vorstellung des Graph Tools PNP by Jörg LingeNagios Conference 2007 | Vorstellung des Graph Tools PNP by Jörg Linge
Nagios Conference 2007 | Vorstellung des Graph Tools PNP by Jörg Linge
 
PHP5 und Oracle
PHP5 und OraclePHP5 und Oracle
PHP5 und Oracle
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauen
 
IPC 2015 Zend Framework 3 Reloaded
IPC 2015 Zend Framework 3 ReloadedIPC 2015 Zend Framework 3 Reloaded
IPC 2015 Zend Framework 3 Reloaded
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbinden
 

Mehr von SpeedPartner GmbH

Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenExtbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobieren
SpeedPartner GmbH
 
Professional reports with SVG
Professional reports with SVGProfessional reports with SVG
Professional reports with SVG
SpeedPartner GmbH
 
Secure PHP environment
Secure PHP environmentSecure PHP environment
Secure PHP environment
SpeedPartner GmbH
 
XUL - The future of user-interfaces on the web
XUL - The future of user-interfaces on the webXUL - The future of user-interfaces on the web
XUL - The future of user-interfaces on the web
SpeedPartner GmbH
 
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-ApplikationenWebsockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
SpeedPartner GmbH
 
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
SpeedPartner GmbH
 
News from PEAR
News from PEARNews from PEAR
News from PEAR
SpeedPartner GmbH
 
PEAR - An introduction
PEAR - An introductionPEAR - An introduction
PEAR - An introduction
SpeedPartner GmbH
 
Suchmaschinen-Optimierung
Suchmaschinen-OptimierungSuchmaschinen-Optimierung
Suchmaschinen-Optimierung
SpeedPartner GmbH
 
.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-Domain.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-Domain
SpeedPartner GmbH
 
Leben und Arbeiten in einer Community
Leben und Arbeiten in einer CommunityLeben und Arbeiten in einer Community
Leben und Arbeiten in einer Community
SpeedPartner GmbH
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
 
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen EinsatzSicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
SpeedPartner GmbH
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
 
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
SpeedPartner GmbH
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
 
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen EinsatzSicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
SpeedPartner GmbH
 
Deploying IPv6 - planning, common pitfalls and security-considerations
Deploying IPv6 - planning, common pitfalls and security-considerationsDeploying IPv6 - planning, common pitfalls and security-considerations
Deploying IPv6 - planning, common pitfalls and security-considerations
SpeedPartner GmbH
 
Explanation of the TYPO3 Integrator Certification
Explanation of the TYPO3 Integrator CertificationExplanation of the TYPO3 Integrator Certification
Explanation of the TYPO3 Integrator Certification
SpeedPartner GmbH
 

Mehr von SpeedPartner GmbH (19)

Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenExtbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobieren
 
Professional reports with SVG
Professional reports with SVGProfessional reports with SVG
Professional reports with SVG
 
Secure PHP environment
Secure PHP environmentSecure PHP environment
Secure PHP environment
 
XUL - The future of user-interfaces on the web
XUL - The future of user-interfaces on the webXUL - The future of user-interfaces on the web
XUL - The future of user-interfaces on the web
 
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-ApplikationenWebsockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
 
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
 
News from PEAR
News from PEARNews from PEAR
News from PEAR
 
PEAR - An introduction
PEAR - An introductionPEAR - An introduction
PEAR - An introduction
 
Suchmaschinen-Optimierung
Suchmaschinen-OptimierungSuchmaschinen-Optimierung
Suchmaschinen-Optimierung
 
.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-Domain.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-Domain
 
Leben und Arbeiten in einer Community
Leben und Arbeiten in einer CommunityLeben und Arbeiten in einer Community
Leben und Arbeiten in einer Community
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
 
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen EinsatzSicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
 
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
 
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen EinsatzSicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
 
Deploying IPv6 - planning, common pitfalls and security-considerations
Deploying IPv6 - planning, common pitfalls and security-considerationsDeploying IPv6 - planning, common pitfalls and security-considerations
Deploying IPv6 - planning, common pitfalls and security-considerations
 
Explanation of the TYPO3 Integrator Certification
Explanation of the TYPO3 Integrator CertificationExplanation of the TYPO3 Integrator Certification
Explanation of the TYPO3 Integrator Certification
 

PHP-Entwicklung mit PEAR

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 10 / 26 PEAR Installer Live-Demo
  • 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. 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. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 13 / 26 PEAR Website Live-Demo
  • 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. 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. 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. 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. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 18 / 26 Paketbeispiel: HTML_QuickForm
  • 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. 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. 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. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 22 / 26 Paketbeispiel: Image_Graph (ab 0.3.0dev1)
  • 23. Stefan Neufeind <neufeind@php.net> +++ LinuxWorld 2004, PHP-Entwicklung mit PEAR 23 / 26 Paketbeispiel: Image_Graph (ab 0.3.0dev1) Anderes Beispiel:
  • 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. 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. 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/