Abläufe mit Phing automatisieren
Upcoming SlideShare
Loading in...5
×
 

Abläufe mit Phing automatisieren

on

  • 2,823 views

 

Statistics

Views

Total Views
2,823
Views on SlideShare
2,588
Embed Views
235

Actions

Likes
0
Downloads
9
Comments
0

3 Embeds 235

http://www.phpug-rheinhessen.de 212
http://www.slideshare.net 14
http://blog.muench-worms.de 9

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Abläufe mit Phing automatisieren Abläufe mit Phing automatisieren Presentation Transcript

  • Abläufe mit phing automatisieren von Christian Münch 1 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Für was braucht man Build-Systeme? Kompilieren von Quellcode (im PHP Umfeld eher weniger anzutreffen) Linken einer ausführbaren Datei (im PHP Umfeld ebenfalls weniger anzutreffen) Vorbereiten eines (idealerweise plattformunabhängigen) Rollouts Automatische Erstellung von Dokumentationen Erstellen von Distributionen ... 2 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Build Systeme auf dem Markt 3 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • phing PHing Is Not GNU make; it's a project build system based on Apache Ant. You can do anything with it that you could do with a traditional build system like GNU make, and its use of simple XML build files and extensible PHP "task" classes make it an easy-to-use and highly flexible build framework. 4 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Installation $> pear channel-discover pear.phing.info $> pear install phing/phing Voilá 5 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Aufruf über Kommandozeile 6 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Auflisten der vorhandenen Targets 7 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Begrifflichkeiten Projekt Meta-Informationen Standard Target Target Sammlung von Projektkomponenten z.B. Tasks Regelt Abhängigkeiten zwischen Targets Task PHP Code der eine bestimmte Aufgabe ausführt Type Datentyp z.B. FileList, FileSet oder eine DB-Verbindung Mapper Filter Verändern z.B. Inhalte von Dateien Parser Property 8 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Einfache phing Datei 9 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • BuildIn Tasks AdhocTaskdefTask IfTask ImportTask AdhocTypedefTask IncludePathTask AppendTask InputTask AvailableTask MkdirTask ChmodTask MoveTask PhingTask ChownTask PhingCallTask ConditionTask PhpEvalTask CopyTask PropertyTask PropertyPromptTask CvsTask ReflexiveTask CvsPassTask ResolvePathTask DeleteTask TaskdefTask EchoTask TouchTask TstampTask ExecTask TypedefTask ExitTask UpToDateTask ForeachTask XsltTask 10 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Optionale Tasks DbDeployTask PhpCpdTask PhpDocumentorTask CoverageMergerTask PhpDocumentorExternalTask CoverageReportTask PhpLintTask CoverageSetupTask PHPUnitTask ExportPropertiesTask PHPUnitReport FileHashTask ScpTask FileSizeTask SimpleTestTask SvnCheckoutTask FtpDeployTask SvnCommitTask IoncubeEncoderTask SvnExportTask IoncubeLicenseTask SvnLastRevisionTask JslLintTask SvnUpdateTask JsMinTask TarTask PDOSQLExecTask UntarTask PearPackageTask UnzipTask VersionTask PearPackage2Task XmlLintTask PharPackageTask XmlPropertyTask PhkPackageTask ZendCodeAnalyzerTask PhpCodeSnifferTask ZipTask 11 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Property Dateien Orientiert sich an Java Property Dateien Einfache Struktur Ant-Kompatibel Verwendung von System Properties ist möglich Abarbeitung erfolgt „von Oben nach Unten“ 12 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • BuildIn Properties application.startdir / Aktuelles Arbeitsverzeichnis host.arch / Architektur des Systems – Nicht unter Windows host.domain DNS Domäne – Nicht unter windows host.fstype / Dateisystem – Werte können sein UNIX, WINNT and WIN32 host.name / Name des Rechners host.os.release / Kernelversion – Nicht unter Windows host.os.version / Langer Betriebssystemname – Nicht unter Windows line.separator / Zeilenumbruchzeichen php.classpath / Die Umgebungsvariable PHP_CLASSPATH php.version / Version des PHP Interpreters phing.buildfile / Voller Pfad zur aktuellen Build-Datei phing.id / Prozess-ID der aktuellen Phing Instanz phing.version / Phing Version project.name / Projektname project.basedir / Basisverzeichnis des aktuellen Projekts project.description / Beschreibung des aktuellen Projekts (sofern vorhanden) user.home / Der Wert der Umgebungsvariablen HOME. 13 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Einbinden der Property Datei Das Element „property“ kann innerhalb von „project“ und innerhalb von „target“ augerufen werden. Ein mehrfaches Aufrufen einer Property-Datei ist möglich 14 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Auslagern von Targets Gerade bei komplexen Build-Scripten bietet es sich an die diese auszulagern und mittels des ImportTask in die build.xml Datei zu importieren. 15 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Timestamp Task 16 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Mapper 17 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Regex Mapper 18 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Eigene Tasks erstellen Drei Möglichkeiten: Task innerhalb von PEAR/phing bereitstellen AdHoc Tasks Task-Klassen innerhalb des eigenen Projekts 19 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Adhoc Task 20 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Eigene Task Klasse im Projekt 21 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Filter Können auf Sets von Dateien angewandt werden. Nützlich zum entferenen von Entwicklungsinformationen vor der Auslieferung an den Kunden Mögliche Einsatzgebietet: Packen von JavaScript und CSS, Entfernen von Kommentaren usw. 22 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Abfragen / Conditions 23 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Typen „Typen“ sind eher „Objekte“ Werden durch eine Schachtelung von XML Elementen definiert Typen werden immer an einen Task übergeben. 24 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Referenzieren von Typen 25 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Beispiel Task mit FileList Unterstützung 26 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de
  • Danke Danke! Und jetzt eine Erfrischung Weiterführende Informationen http://phing.info - Die Phing Projektseite http://phing.tigris.org/files/documents/995/8019/PhingGuide_en.pdf Twitter: twitter.com/cmuench 27 netz98 new media GmbH · Haifa-Allee 2 · 55128 Mainz · info@netz98.de · www.netz98.de