PHP5 & Oracle




       Oracle Usergroup Frankfurt / Björn Schotte / Mayflower Gm
I love PHP :-)
PHP - Historie
• erfunden 1994 by Rasmus Lerdorf
• damals noch in Perl, 1995
  Wandlung in C

• kleine Scriptsprache namens PHP/FI
  (FI = Form Interpreter), Siegeszug
  ab PHP4 (ca. 2000)

• angekommen im Unternehmens
  Umfeld mit PHP5 (bessere OOP
  Features, SPL, Extensions)
PHP - ein paar
       Fakten
• treibt mehr als 20 Mio. Websites an
• Scriptsprache
• PHP ist die Borg (Integration)
• treibt immer mehr businesskritische
  Webanwendungen an
Wer nutzt PHP?




         ... und viele mehr
Businesskritische
   Enterprise
Leichtgewichtige Architekturen


Java                        PHP
• eXtreme Programming
• Scrum
• Sprint- und Kommunikations
 getrieben, kein Wasserfall
QA, TDD & Co.
• PHPUnit für TDD (JUnit Port)
• CruiseControl als Unterbau für
  automatisierte QA

• statische Code-Inspektion
• Selenium für Browserakzeptanztests
• sehr leichtgewichtig
Entwicklungs-
geschwindigkeiten


   • Realisierung von Anwendungen in
     Wochen
     statt Monaten

   • prototypengetriebene Entwicklung
   • Kunde kann direkt eingreifen
PHP = Die Borg




Tonnen von PHP Extensions
(pecl.php.net)
PHP5 &
• sorry, keine Hexerei mehr :-)
• seit 2005 massive Verbesserung in
  der Nutzung von Oracle mit PHP

• dank Kooperation Oracle & Zend
• PHP im Oracle App Server zur
  Verfügung
PHP5 und Oracle
• „The Underground PHP and Oracle
  Manual“

• Extensions OCI8, PDO
• Einbindung via Oracle InstantClient
• alternativ Zend Core for Oracle
• Connection Pooling via 11g
  Database Resident Connection
Installation Oracle Treiber


• siehe Underground Manual
• Oracle InstantClient
• OCI8 Extension + PDO
• ... und schon geht‘s los :-)
Connections verwalten
• DCRP benutzen (OCI8 1.3, 11G)
• oci8.persistent_timeout setzen zum
  expiren von idle connections

• keine Mehrfach-Verbindungen an
  Oracle in einem Script

• oci_pconnect() benutzen (MySQL:
  kein pconnect() benutzen :) )
Tägliche Arbeit
• normal wie mit anderen DBs
• Variable Binding
• LOB updating via
  oci_new_descriptor() und dann -
  >savefile() + oci_commit()

• kein Support für NCHAR oder NLOB
  in OCI8 Extension
Links
• http://wiki.oracle.com/page/PHP
  +Oracle+FAQ

• Underground PHP and Oracle
  Manual

• OCI8 PHP Dokumentation
• Zend Core for Oracle
Fragen?
Kontakt

    MAYFLOWER GmbH
        Björn Schotte
bjoern.schotte@mayflower.de

PHP5 und Oracle

  • 1.
    PHP5 & Oracle Oracle Usergroup Frankfurt / Björn Schotte / Mayflower Gm
  • 2.
  • 3.
    PHP - Historie •erfunden 1994 by Rasmus Lerdorf • damals noch in Perl, 1995 Wandlung in C • kleine Scriptsprache namens PHP/FI (FI = Form Interpreter), Siegeszug ab PHP4 (ca. 2000) • angekommen im Unternehmens Umfeld mit PHP5 (bessere OOP Features, SPL, Extensions)
  • 4.
    PHP - einpaar Fakten • treibt mehr als 20 Mio. Websites an • Scriptsprache • PHP ist die Borg (Integration) • treibt immer mehr businesskritische Webanwendungen an
  • 5.
    Wer nutzt PHP? ... und viele mehr
  • 6.
  • 7.
  • 8.
    • eXtreme Programming •Scrum • Sprint- und Kommunikations getrieben, kein Wasserfall
  • 9.
    QA, TDD &Co. • PHPUnit für TDD (JUnit Port) • CruiseControl als Unterbau für automatisierte QA • statische Code-Inspektion • Selenium für Browserakzeptanztests • sehr leichtgewichtig
  • 10.
    Entwicklungs- geschwindigkeiten • Realisierung von Anwendungen in Wochen statt Monaten • prototypengetriebene Entwicklung • Kunde kann direkt eingreifen
  • 11.
    PHP = DieBorg Tonnen von PHP Extensions (pecl.php.net)
  • 12.
    PHP5 & • sorry,keine Hexerei mehr :-) • seit 2005 massive Verbesserung in der Nutzung von Oracle mit PHP • dank Kooperation Oracle & Zend • PHP im Oracle App Server zur Verfügung
  • 13.
    PHP5 und Oracle •„The Underground PHP and Oracle Manual“ • Extensions OCI8, PDO • Einbindung via Oracle InstantClient • alternativ Zend Core for Oracle • Connection Pooling via 11g Database Resident Connection
  • 14.
    Installation Oracle Treiber •siehe Underground Manual • Oracle InstantClient • OCI8 Extension + PDO • ... und schon geht‘s los :-)
  • 15.
    Connections verwalten • DCRPbenutzen (OCI8 1.3, 11G) • oci8.persistent_timeout setzen zum expiren von idle connections • keine Mehrfach-Verbindungen an Oracle in einem Script • oci_pconnect() benutzen (MySQL: kein pconnect() benutzen :) )
  • 16.
    Tägliche Arbeit • normalwie mit anderen DBs • Variable Binding • LOB updating via oci_new_descriptor() und dann - >savefile() + oci_commit() • kein Support für NCHAR oder NLOB in OCI8 Extension
  • 17.
    Links • http://wiki.oracle.com/page/PHP +Oracle+FAQ • Underground PHP and Oracle Manual • OCI8 PHP Dokumentation • Zend Core for Oracle
  • 18.
  • 19.
    Kontakt MAYFLOWER GmbH Björn Schotte bjoern.schotte@mayflower.de