SlideShare ist ein Scribd-Unternehmen logo
Webservice API
Webportale mit Force.com verbinden. PHP 5,
Symfony 2 & SOAP.

Johannes Heinen, code mitte GmbH
Über mich
●   Webentwickler bei code mitte
    ○   PHP, Javascript
    ○   Apex & Visualforce


●   Jahrelange Erfahrung in Konzeption, Design &
    Implementierung von Websites, -Portalen, -Shops,
    -Katalogen, -Applikationen, -[...]

●   Seit einskommafünf Jahren in der Salesforce-Cloud
Force.com Platform
●   The good, ...
     ○   Cloudbasiert: "No Software"
         (in the meaning of "to install")
     ○   Ein unkomplizierter Stack für "alles"
         (Ausgabe, Geschäftslogik, Persistenz)
     ○   Sofort einsatzbereit (theoretisch)

●   ... the bad, ...
     ○   Layout/GUI components, "Rahmenwerk"
     ○   "Intranet" vs. "Internet", CRM Platform
         vs. Website
     ○   Erst wachsende Erfahrung mit "großen"
         Projekten (Test-Fixtures, Deployment <3)   Photo: salesforce.com
     ○   "No Software"?
... the ugly




               Abbildung: Cal Evans [https://secure.flickr.com/photos/calevans]
PHP
● Bewährte, stabile       ● Software! (und HW)
  Entwicklungsplattform   ● (Fast) keine
● Wartungsarm               Standardisierung => SPL
● Kostengünstig             vs. JSR
● Geringe                 ● (Fast) Keine
  Entwicklungszeiten        Interfaces/Contracts =>
● Verfügbare Experten,      Funktionen() vs. API
  verfügbares             ● Vorsicht vor dem
  Expertenwissen            Spaghetticode!
● Community               ● Nicht "Enterprise"
● "Agil"                    genug?
PHP vs. Apex/VF
●   Keine Einschränkungen durch standardisierte GUI-
    Components oder das "Salesforce-Layout"

●   Beliebige Ausgabe
    ○   HTML(5), JSON, XML
    ○   PDF
    ○   JPEG, PNG, GIF
    ○   Flash
    ○   Video


●   Nahezu jedes Design kann umgesetzt, jedes Frontend
    "bedient" werden
Symfony 2
 ●   "Web application framework"
      ○   lose gekoppelt, komponentenbasiert
      ○   stabil, testabgedeckt
      ○   große Community
      ○   international be- und anerkannt
      ○   implementiert viele Standards und best practices anderer
          Sprachen und Frameworks
 ●   "State-Of-The-Art"
      ○   PHP 5.3.x
 ● Reduziert oder verbirgt PHP-Nachteile und
   Stolpersteine
Macht die strukturierte, wartbare und effiziente
Entwicklung großer Softwareprojekte auf der PHP-
Plattform möglich (bzw. reduziert gelegentlich dabei auftretende Schmerzen auf ein Minimum)
PHP & Force.com
●   Force.com-Toolkit für PHP (5.3)
    ○   via PHP:SOAP
         ■   Webservice API Partner/Enterprise
         ■   Custom Webservices


●   Das "M" in MVC
    ○   SOQL-Queries: query(), queryMore(), retrieve(), ...
    ○   DML-Statements
         ■   create(), update(), upsert()
         ■   Prepared Statements!
Symfony 2 & Force.com
Mittels zur Laufzeit zugänglichen Metainformationen
("Reflection")
 ● describeLayout()
 ● describeSobject()

können Symfony-Formtypes und Validatoren generiert
werden, zum Beispiel
 ● (HTML 5) Formtypes
    ○   Date, Datetime, (dependent) Picklist, Email, Phone, Required
        fields, minlength, maxlength-Attributes, etc.
●   Validators
    ○   "Contains-Validator" (Picklist)
    ○   Complex (Custom)-Validator (Address Validation, Serialnumber
        validity check)
Symfony 2 & Force.com (2)
Vorteile:
● I18n auf der Plattform (Field-Labels)
● Minimaler Pflegeaufwand, bspw. bei Picklist-Values
● "Rapid" form development
● Absolute Flexibilität bei der Weiterverarbeitung der
  gesammelten und validierten POST-Daten.
● Einfaches, automatisiertes Rendern ganzer Formulare
  auf Basis von describeLayout()-Rastern (foreach row in
  rows, foreach col in row, [...])

Nachteilig ist ein gewisser overhead an SOAP-Calls und
Metadaten-Aggregierung.
  => Caching
Symfony 2 & Force.com (3)
Wiederverwendbares Symfony-Modul
 ("CodemitteForceBundle")
● Form-Extensions (type "sfdc_field")
    ○   Ein Form-Type für "alles"
●   Twig-Template-Extensions
    ○   Form-Helptexts
    ○   Form-labels werden auf der Force.com Plattform übersetzt, no
        need 4 I18n
    ○   Form-Templates (für bspw. Dependent-Picklists oder Phone-
        Type)
●   Validation-Extension
    ○   Still under heavy development
●   Pagelayout2Form-Renderer
    ○   Still under heavy development
Und nun ...
... ein kurzer Blick auf das neue,
Force.com & PHP-getriebene Portal




         appletini.com




                                     Photo: Sherry Elliott
Danke für die Aufmerksamkeit.

Weitere ähnliche Inhalte

Ähnlich wie Webservice API - Webportale mit Force.com verbinden

Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Mayflower GmbH
 
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
FotiosKaramitsos
 
B1 Acocon Lotus Day 08.09.2009
B1 Acocon Lotus Day 08.09.2009B1 Acocon Lotus Day 08.09.2009
B1 Acocon Lotus Day 08.09.2009
Andreas Schulte
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & Tools
Ulrich Krause
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
QAware GmbH
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
QAware GmbH
 
PHP5 und Oracle
PHP5 und OraclePHP5 und Oracle
PHP5 und Oracle
Mayflower GmbH
 
fn project serverless computing
fn project serverless computingfn project serverless computing
fn project serverless computing
Wolfgang Weigend
 
SPHERE.IO eCommerce as API platform - Nikolaus Kühn @ eCommerceCamp Jena 2015
SPHERE.IO eCommerce as API platform - Nikolaus Kühn @ eCommerceCamp Jena 2015SPHERE.IO eCommerce as API platform - Nikolaus Kühn @ eCommerceCamp Jena 2015
SPHERE.IO eCommerce as API platform - Nikolaus Kühn @ eCommerceCamp Jena 2015
commercetools developers
 
Progressive Web Apps mit Angular
Progressive Web Apps mit AngularProgressive Web Apps mit Angular
Progressive Web Apps mit Angular
Jens Binfet
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Kai Donato
 
APEX 5.0, und sonst?
APEX 5.0, und sonst?APEX 5.0, und sonst?
APEX 5.0, und sonst?
Niels de Bruijn
 
Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1
DNUG e.V.
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
Jürg Stuker
 
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Niels de Bruijn
 
XPages - The Basics
XPages - The BasicsXPages - The Basics
XPages - The Basics
Ulrich Krause
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
Christian Münch
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und Raumfahrt
Andreas Schreiber
 
AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 Performance
Ulrich Krause
 

Ähnlich wie Webservice API - Webportale mit Force.com verbinden (20)

Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
 
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
 
B1 Acocon Lotus Day 08.09.2009
B1 Acocon Lotus Day 08.09.2009B1 Acocon Lotus Day 08.09.2009
B1 Acocon Lotus Day 08.09.2009
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & Tools
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
PHP5 und Oracle
PHP5 und OraclePHP5 und Oracle
PHP5 und Oracle
 
fn project serverless computing
fn project serverless computingfn project serverless computing
fn project serverless computing
 
SPHERE.IO eCommerce as API platform - Nikolaus Kühn @ eCommerceCamp Jena 2015
SPHERE.IO eCommerce as API platform - Nikolaus Kühn @ eCommerceCamp Jena 2015SPHERE.IO eCommerce as API platform - Nikolaus Kühn @ eCommerceCamp Jena 2015
SPHERE.IO eCommerce as API platform - Nikolaus Kühn @ eCommerceCamp Jena 2015
 
Progressive Web Apps mit Angular
Progressive Web Apps mit AngularProgressive Web Apps mit Angular
Progressive Web Apps mit Angular
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
 
APEX 5.0, und sonst?
APEX 5.0, und sonst?APEX 5.0, und sonst?
APEX 5.0, und sonst?
 
Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
 
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)
 
XPages - The Basics
XPages - The BasicsXPages - The Basics
XPages - The Basics
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und Raumfahrt
 
AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 Performance
 
Hsps2014
Hsps2014Hsps2014
Hsps2014
 

Webservice API - Webportale mit Force.com verbinden

  • 1. Webservice API Webportale mit Force.com verbinden. PHP 5, Symfony 2 & SOAP. Johannes Heinen, code mitte GmbH
  • 2. Über mich ● Webentwickler bei code mitte ○ PHP, Javascript ○ Apex & Visualforce ● Jahrelange Erfahrung in Konzeption, Design & Implementierung von Websites, -Portalen, -Shops, -Katalogen, -Applikationen, -[...] ● Seit einskommafünf Jahren in der Salesforce-Cloud
  • 3. Force.com Platform ● The good, ... ○ Cloudbasiert: "No Software" (in the meaning of "to install") ○ Ein unkomplizierter Stack für "alles" (Ausgabe, Geschäftslogik, Persistenz) ○ Sofort einsatzbereit (theoretisch) ● ... the bad, ... ○ Layout/GUI components, "Rahmenwerk" ○ "Intranet" vs. "Internet", CRM Platform vs. Website ○ Erst wachsende Erfahrung mit "großen" Projekten (Test-Fixtures, Deployment <3) Photo: salesforce.com ○ "No Software"?
  • 4. ... the ugly Abbildung: Cal Evans [https://secure.flickr.com/photos/calevans]
  • 5. PHP ● Bewährte, stabile ● Software! (und HW) Entwicklungsplattform ● (Fast) keine ● Wartungsarm Standardisierung => SPL ● Kostengünstig vs. JSR ● Geringe ● (Fast) Keine Entwicklungszeiten Interfaces/Contracts => ● Verfügbare Experten, Funktionen() vs. API verfügbares ● Vorsicht vor dem Expertenwissen Spaghetticode! ● Community ● Nicht "Enterprise" ● "Agil" genug?
  • 6. PHP vs. Apex/VF ● Keine Einschränkungen durch standardisierte GUI- Components oder das "Salesforce-Layout" ● Beliebige Ausgabe ○ HTML(5), JSON, XML ○ PDF ○ JPEG, PNG, GIF ○ Flash ○ Video ● Nahezu jedes Design kann umgesetzt, jedes Frontend "bedient" werden
  • 7. Symfony 2 ● "Web application framework" ○ lose gekoppelt, komponentenbasiert ○ stabil, testabgedeckt ○ große Community ○ international be- und anerkannt ○ implementiert viele Standards und best practices anderer Sprachen und Frameworks ● "State-Of-The-Art" ○ PHP 5.3.x ● Reduziert oder verbirgt PHP-Nachteile und Stolpersteine Macht die strukturierte, wartbare und effiziente Entwicklung großer Softwareprojekte auf der PHP- Plattform möglich (bzw. reduziert gelegentlich dabei auftretende Schmerzen auf ein Minimum)
  • 8. PHP & Force.com ● Force.com-Toolkit für PHP (5.3) ○ via PHP:SOAP ■ Webservice API Partner/Enterprise ■ Custom Webservices ● Das "M" in MVC ○ SOQL-Queries: query(), queryMore(), retrieve(), ... ○ DML-Statements ■ create(), update(), upsert() ■ Prepared Statements!
  • 9. Symfony 2 & Force.com Mittels zur Laufzeit zugänglichen Metainformationen ("Reflection") ● describeLayout() ● describeSobject() können Symfony-Formtypes und Validatoren generiert werden, zum Beispiel ● (HTML 5) Formtypes ○ Date, Datetime, (dependent) Picklist, Email, Phone, Required fields, minlength, maxlength-Attributes, etc. ● Validators ○ "Contains-Validator" (Picklist) ○ Complex (Custom)-Validator (Address Validation, Serialnumber validity check)
  • 10. Symfony 2 & Force.com (2) Vorteile: ● I18n auf der Plattform (Field-Labels) ● Minimaler Pflegeaufwand, bspw. bei Picklist-Values ● "Rapid" form development ● Absolute Flexibilität bei der Weiterverarbeitung der gesammelten und validierten POST-Daten. ● Einfaches, automatisiertes Rendern ganzer Formulare auf Basis von describeLayout()-Rastern (foreach row in rows, foreach col in row, [...]) Nachteilig ist ein gewisser overhead an SOAP-Calls und Metadaten-Aggregierung. => Caching
  • 11. Symfony 2 & Force.com (3) Wiederverwendbares Symfony-Modul ("CodemitteForceBundle") ● Form-Extensions (type "sfdc_field") ○ Ein Form-Type für "alles" ● Twig-Template-Extensions ○ Form-Helptexts ○ Form-labels werden auf der Force.com Plattform übersetzt, no need 4 I18n ○ Form-Templates (für bspw. Dependent-Picklists oder Phone- Type) ● Validation-Extension ○ Still under heavy development ● Pagelayout2Form-Renderer ○ Still under heavy development
  • 12. Und nun ... ... ein kurzer Blick auf das neue, Force.com & PHP-getriebene Portal appletini.com Photo: Sherry Elliott
  • 13. Danke für die Aufmerksamkeit.