SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
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/

Contenu connexe

En vedette

Unidad 4 Resumen Interfaz H - M
Unidad 4 Resumen Interfaz H - MUnidad 4 Resumen Interfaz H - M
Unidad 4 Resumen Interfaz H - MInfectedalex
 
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 wki2Edgar0622
 
Nociones de probabilidades
Nociones de probabilidadesNociones de probabilidades
Nociones de probabilidadesoneliafernandez
 
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 socialesEdgar0622
 
coremanager® - planen, buchen, managen
coremanager® - planen, buchen, managencoremanager® - planen, buchen, managen
coremanager® - planen, buchen, managenFilipe Felix
 
Bizkaia castellano 2015-16
Bizkaia  castellano 2015-16Bizkaia  castellano 2015-16
Bizkaia castellano 2015-16Maite Adbeitia
 
Proyecto de tic en matematicas
Proyecto de tic en matematicasProyecto de tic en matematicas
Proyecto de tic en matematicasJohamn Albarracin
 
Diapositivas aborto
Diapositivas abortoDiapositivas aborto
Diapositivas abortoratona13
 
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 gestionArtequim . com Ltda.
 
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
 

En vedette (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
 

Similaire à PHP-Entwicklung mit PEAR

NetBeans für PHP-Entwickler
NetBeans für PHP-EntwicklerNetBeans für PHP-Entwickler
NetBeans für PHP-EntwicklerIngo Reinhart
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatengeKarin 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_pipperrGunther 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 LangeNETWAYS
 
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 GroupMatthias Praunegger
 
Übersicht Skriptsprachen
Übersicht SkriptsprachenÜbersicht Skriptsprachen
Übersicht SkriptsprachenA. LE
 
PHAR better Tools
PHAR better ToolsPHAR better Tools
PHAR better ToolsPHP 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 augeasSpeedPartner GmbH
 
node.js - Eine kurze Einführung
node.js - Eine kurze Einführungnode.js - Eine kurze Einführung
node.js - Eine kurze Einführungnodeio
 
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 LingeNETWAYS
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSchlomo Schapiro
 
IPC 2015 Zend Framework 3 Reloaded
IPC 2015 Zend Framework 3 ReloadedIPC 2015 Zend Framework 3 Reloaded
IPC 2015 Zend Framework 3 ReloadedRalf 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 verbindenAptly GmbH
 

Similaire à 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
 

Plus de SpeedPartner GmbH

Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenExtbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenSpeedPartner GmbH
 
Professional reports with SVG
Professional reports with SVGProfessional reports with SVG
Professional reports with SVGSpeedPartner 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 webSpeedPartner 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-ApplikationenSpeedPartner GmbH
 
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishSpeedPartner GmbH
 
.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-Domain.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-DomainSpeedPartner GmbH
 
Leben und Arbeiten in einer Community
Leben und Arbeiten in einer CommunityLeben und Arbeiten in einer Community
Leben und Arbeiten in einer CommunitySpeedPartner 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 augeasSpeedPartner 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 EinsatzSpeedPartner 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 augeasSpeedPartner GmbH
 
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishSpeedPartner 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 augeasSpeedPartner 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 EinsatzSpeedPartner 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-considerationsSpeedPartner GmbH
 
Explanation of the TYPO3 Integrator Certification
Explanation of the TYPO3 Integrator CertificationExplanation of the TYPO3 Integrator Certification
Explanation of the TYPO3 Integrator CertificationSpeedPartner GmbH
 

Plus de 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/