SlideShare uma empresa Scribd logo
1 de 11
Integrating 123betaal into Magento
Me


• Jira ICT
  – Training in Magento, Joomla! & Drupal
  – Consult regarding implementation, security, architecture, etc
  – Some other things like open source
• Jisse Reitsma (me)
  –   PHP programming (Magento, Joomla! & Drupal)
  –   System administrator
  –   Security consultant
  –   Writer of “Joomla!-templates ontwerpen”-book




                       Jisse Reitsma (www.jira.nl) @Dutch Magento Day   2
Steps


• Rename “PayPal” to “123betaal”
  – Package name “Jira”
  – Module name “123Betaal”
  – Total name “Jira_123Betaal”
• Debug everything that does not work
• Re-check functionality




                     Jisse Reitsma (www.jira.nl) @Dutch Magento Day   3
Debugging


In general
Read before you start
White Screen Of Death
  PHP Fatal Errors
  Regular PHP debugging


Specific problems
Garbled output because of XML syntax
  Legal but non-usable XML caused the buffer to go crazy
  The “Comment Everything” strategy
Model-class not found
  Using a different name-base then Mage_*
  Opening up the Magento source



                      Jisse Reitsma (www.jira.nl) @Dutch Magento Day   4
php|architects Guido to Prog. with Magento


• A very small book for a very complex application
• Requires a good understanding of Object-Oriented Programming




                 Jisse Reitsma (www.jira.nl) @Dutch Magento Day   5
White Screen Of Death


•   ... or read the PHP Fatal Error from the screen
•   ... or read the Apache error-log
•   Check the syntax of your PHP-code
•   Check the syntax of your Magento-specific code
•   RTFM (“Read The Fine Manual”)




                    Jisse Reitsma (www.jira.nl) @Dutch Magento Day   6
Garbled output because of XML syntax


Problem: When going to the “Settings” screen, instead of HTML
  something half compressed(?) is shown, but no error is logged.




• Conclusion 1: The problem lies in a XML error.
• Debug method: Comment everything but X
• Conclusion 2: <123betaal> is causing the problem, because the
  variable $123betaal can not exit
• Solution: Rename “123betaal” to “betaal123”


                  Jisse Reitsma (www.jira.nl) @Dutch Magento Day   7
Model “Mage_Jira_Betaal123” not found (1)


Problem: XML in “system.xml” contains a <source_model>-tag defining
  “betaal123/source_paymentAction” as PHP-class to fill the parameter
  in question with options. The final PHP-class that should be called is
  “[local]Jira_Betaal123_Model_Source_PaymentAction” but instead
  Magento tries to call “[*]Mage_Jira_Model_123Betaal” which does not
  exist.

• Debug method: Read all the PHP source-code involved




                   Jisse Reitsma (www.jira.nl) @Dutch Magento Day      8
Model “Mage_Jira_Betaal123” not found (2)


•   Mage_Adminhtml_Block_System_Config_Form::initFields()
•   Mage::getSingleton()
•   Mage::getModel()
•   Mage_Core_Model_Config::getModelInstance()
•   Mage_Core_Model_Config::getModelClassName()
•   Mage_Core_Model_Config::getGroupedClassName()
•   PROBLEM FOUND!

Cause: <source_model> can never refer to a base-name other than
 Mage_* (for instance Jira_Betaal123)

Solution: Rename “Jira_Betaal123” to “Mage_Betaal123”


                   Jisse Reitsma (www.jira.nl) @Dutch Magento Day   9
Copying module from server1 to server2


•   Copy all files through a ZIP-patch
•   Refresh “Admin” page
•   Huh, nothing happens?
•   Disable Cache
•   Refresh “Admin” page
•   (no database action needed!)
•   It works




                     Jisse Reitsma (www.jira.nl) @Dutch Magento Day   10
Conclusions


• Debugging requires a solid understanding of Object-Oriented PHP
• Debugging takes more time because of the complex object-hierarchy
  within the Magento core
• Third party packages can still cause (wierd) problems




                 Jisse Reitsma (www.jira.nl) @Dutch Magento Day   11

Mais conteúdo relacionado

Semelhante a Jisse Reitsma 123betaal

Developing new feature in Joomla - Joomladay UK 2016
Developing new feature in Joomla - Joomladay UK 2016Developing new feature in Joomla - Joomladay UK 2016
Developing new feature in Joomla - Joomladay UK 2016Peter Martin
 
Zendcon magento101
Zendcon magento101Zendcon magento101
Zendcon magento101Mathew Beane
 
Finding Your Way: Understanding Magento Code
Finding Your Way: Understanding Magento CodeFinding Your Way: Understanding Magento Code
Finding Your Way: Understanding Magento CodeBen Marks
 
php[world] Magento101
php[world] Magento101php[world] Magento101
php[world] Magento101Mathew Beane
 
JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...
JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...
JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...Peter Martin
 
Implementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyImplementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyMarcos Labad
 
Sandboxing JS and HTML. A lession Learned
Sandboxing JS and HTML. A lession LearnedSandboxing JS and HTML. A lession Learned
Sandboxing JS and HTML. A lession LearnedMinded Security
 
Encompassing Information Integration
Encompassing Information IntegrationEncompassing Information Integration
Encompassing Information Integrationnguyenfilip
 
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07garrett honeycutt
 
Creating Custom Templates for Joomla! 2.5
Creating Custom Templates for Joomla! 2.5Creating Custom Templates for Joomla! 2.5
Creating Custom Templates for Joomla! 2.5Don Cranford
 
Improving your code design using Java
Improving your code design using JavaImproving your code design using Java
Improving your code design using JavaRoan Brasil Monteiro
 
Performant Django - Ara Anjargolian
Performant Django - Ara AnjargolianPerformant Django - Ara Anjargolian
Performant Django - Ara AnjargolianHakka Labs
 
How the HotSpot and Graal JVMs execute Java Code
How the HotSpot and Graal JVMs execute Java CodeHow the HotSpot and Graal JVMs execute Java Code
How the HotSpot and Graal JVMs execute Java CodeJim Gough
 
PyconIE 2016 - Kajiki, the fast and validated template engine your were looki...
PyconIE 2016 - Kajiki, the fast and validated template engine your were looki...PyconIE 2016 - Kajiki, the fast and validated template engine your were looki...
PyconIE 2016 - Kajiki, the fast and validated template engine your were looki...Alessandro Molina
 
Mageguru - magento custom module development
Mageguru -  magento custom module development Mageguru -  magento custom module development
Mageguru - magento custom module development Mage Guru
 
Drupal 8 - Build Week Update
Drupal 8 - Build Week UpdateDrupal 8 - Build Week Update
Drupal 8 - Build Week UpdateAngela Byron
 
Java Performance Mistakes
Java Performance MistakesJava Performance Mistakes
Java Performance MistakesAndreas Grabner
 

Semelhante a Jisse Reitsma 123betaal (20)

Developing new feature in Joomla - Joomladay UK 2016
Developing new feature in Joomla - Joomladay UK 2016Developing new feature in Joomla - Joomladay UK 2016
Developing new feature in Joomla - Joomladay UK 2016
 
Zendcon magento101
Zendcon magento101Zendcon magento101
Zendcon magento101
 
Django at Scale
Django at ScaleDjango at Scale
Django at Scale
 
Finding Your Way: Understanding Magento Code
Finding Your Way: Understanding Magento CodeFinding Your Way: Understanding Magento Code
Finding Your Way: Understanding Magento Code
 
php[world] Magento101
php[world] Magento101php[world] Magento101
php[world] Magento101
 
JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...
JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...
JUG Utrecht 2013 - Have you tried turning it off and on again? Problemen oplo...
 
Implementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyImplementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing Company
 
Sandboxing JS and HTML. A lession Learned
Sandboxing JS and HTML. A lession LearnedSandboxing JS and HTML. A lession Learned
Sandboxing JS and HTML. A lession Learned
 
Encompassing Information Integration
Encompassing Information IntegrationEncompassing Information Integration
Encompassing Information Integration
 
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07
 
Creating Custom Templates for Joomla! 2.5
Creating Custom Templates for Joomla! 2.5Creating Custom Templates for Joomla! 2.5
Creating Custom Templates for Joomla! 2.5
 
Improving your code design using Java
Improving your code design using JavaImproving your code design using Java
Improving your code design using Java
 
jQuery PPT
jQuery PPTjQuery PPT
jQuery PPT
 
Performant Django - Ara Anjargolian
Performant Django - Ara AnjargolianPerformant Django - Ara Anjargolian
Performant Django - Ara Anjargolian
 
How the HotSpot and Graal JVMs execute Java Code
How the HotSpot and Graal JVMs execute Java CodeHow the HotSpot and Graal JVMs execute Java Code
How the HotSpot and Graal JVMs execute Java Code
 
PyconIE 2016 - Kajiki, the fast and validated template engine your were looki...
PyconIE 2016 - Kajiki, the fast and validated template engine your were looki...PyconIE 2016 - Kajiki, the fast and validated template engine your were looki...
PyconIE 2016 - Kajiki, the fast and validated template engine your were looki...
 
Git Makes Me Angry Inside
Git Makes Me Angry InsideGit Makes Me Angry Inside
Git Makes Me Angry Inside
 
Mageguru - magento custom module development
Mageguru -  magento custom module development Mageguru -  magento custom module development
Mageguru - magento custom module development
 
Drupal 8 - Build Week Update
Drupal 8 - Build Week UpdateDrupal 8 - Build Week Update
Drupal 8 - Build Week Update
 
Java Performance Mistakes
Java Performance MistakesJava Performance Mistakes
Java Performance Mistakes
 

Mais de Guido X Jansen

Persuasive E-commerce, Our Biased Brain @ Bikkeldag 2024
Persuasive E-commerce, Our Biased Brain @ Bikkeldag 2024Persuasive E-commerce, Our Biased Brain @ Bikkeldag 2024
Persuasive E-commerce, Our Biased Brain @ Bikkeldag 2024Guido X Jansen
 
Grow Smart or Die Fast: 5 Guidelines to Navigate the Recession
Grow Smart or Die Fast: 5 Guidelines to Navigate the RecessionGrow Smart or Die Fast: 5 Guidelines to Navigate the Recession
Grow Smart or Die Fast: 5 Guidelines to Navigate the RecessionGuido X Jansen
 
Emerce Retail_Stage Session_SQLI&Spryker_2022_AU (1).pdf
Emerce Retail_Stage Session_SQLI&Spryker_2022_AU (1).pdfEmerce Retail_Stage Session_SQLI&Spryker_2022_AU (1).pdf
Emerce Retail_Stage Session_SQLI&Spryker_2022_AU (1).pdfGuido X Jansen
 
Emerce B2B_Stage Session_YOUWE&Spryker_2022_AU.pdf
Emerce B2B_Stage Session_YOUWE&Spryker_2022_AU.pdfEmerce B2B_Stage Session_YOUWE&Spryker_2022_AU.pdf
Emerce B2B_Stage Session_YOUWE&Spryker_2022_AU.pdfGuido X Jansen
 
B2BOnline_Keynote - Guido @ Emerce B2B Dinner.pdf
B2BOnline_Keynote - Guido @ Emerce B2B Dinner.pdfB2BOnline_Keynote - Guido @ Emerce B2B Dinner.pdf
B2BOnline_Keynote - Guido @ Emerce B2B Dinner.pdfGuido X Jansen
 
Emerce Live Keynote - June 1st 2022.pdf
Emerce Live Keynote - June 1st 2022.pdfEmerce Live Keynote - June 1st 2022.pdf
Emerce Live Keynote - June 1st 2022.pdfGuido X Jansen
 
Why Marketplace is Your Next Big Initiative
Why Marketplace is Your Next Big InitiativeWhy Marketplace is Your Next Big Initiative
Why Marketplace is Your Next Big InitiativeGuido X Jansen
 
Still A/B testing your buttons? You need to think (much) bigger...
Still A/B testing your buttons? You need to think (much) bigger...Still A/B testing your buttons? You need to think (much) bigger...
Still A/B testing your buttons? You need to think (much) bigger...Guido X Jansen
 
Persuasive e commerce workshop - Spryker
Persuasive e commerce workshop - SprykerPersuasive e commerce workshop - Spryker
Persuasive e commerce workshop - SprykerGuido X Jansen
 
JDE ecomweek presentation on user validation
JDE ecomweek presentation on user validationJDE ecomweek presentation on user validation
JDE ecomweek presentation on user validationGuido X Jansen
 
Picking software to run a business livestream
Picking software to run a business livestream Picking software to run a business livestream
Picking software to run a business livestream Guido X Jansen
 
Cross cultural website optimization
Cross cultural website optimizationCross cultural website optimization
Cross cultural website optimizationGuido X Jansen
 
Building your optimization technology stack
Building your optimization technology stackBuilding your optimization technology stack
Building your optimization technology stackGuido X Jansen
 
Data driven decisions meet psychology
Data driven decisions meet psychologyData driven decisions meet psychology
Data driven decisions meet psychologyGuido X Jansen
 
Building your optimization dream team
Building your optimization dream teamBuilding your optimization dream team
Building your optimization dream teamGuido X Jansen
 
Creating an optimization culture
Creating an optimization cultureCreating an optimization culture
Creating an optimization cultureGuido X Jansen
 
Optimization culture - Conversion Elite London 2018
Optimization culture - Conversion Elite London 2018Optimization culture - Conversion Elite London 2018
Optimization culture - Conversion Elite London 2018Guido X Jansen
 
Optimization culture @DDTT
Optimization culture @DDTTOptimization culture @DDTT
Optimization culture @DDTTGuido X Jansen
 

Mais de Guido X Jansen (20)

Persuasive E-commerce, Our Biased Brain @ Bikkeldag 2024
Persuasive E-commerce, Our Biased Brain @ Bikkeldag 2024Persuasive E-commerce, Our Biased Brain @ Bikkeldag 2024
Persuasive E-commerce, Our Biased Brain @ Bikkeldag 2024
 
Outlook 2023
Outlook 2023Outlook 2023
Outlook 2023
 
Grow Smart or Die Fast: 5 Guidelines to Navigate the Recession
Grow Smart or Die Fast: 5 Guidelines to Navigate the RecessionGrow Smart or Die Fast: 5 Guidelines to Navigate the Recession
Grow Smart or Die Fast: 5 Guidelines to Navigate the Recession
 
Emerce Retail_Stage Session_SQLI&Spryker_2022_AU (1).pdf
Emerce Retail_Stage Session_SQLI&Spryker_2022_AU (1).pdfEmerce Retail_Stage Session_SQLI&Spryker_2022_AU (1).pdf
Emerce Retail_Stage Session_SQLI&Spryker_2022_AU (1).pdf
 
Emerce B2B_Stage Session_YOUWE&Spryker_2022_AU.pdf
Emerce B2B_Stage Session_YOUWE&Spryker_2022_AU.pdfEmerce B2B_Stage Session_YOUWE&Spryker_2022_AU.pdf
Emerce B2B_Stage Session_YOUWE&Spryker_2022_AU.pdf
 
B2BOnline_Keynote - Guido @ Emerce B2B Dinner.pdf
B2BOnline_Keynote - Guido @ Emerce B2B Dinner.pdfB2BOnline_Keynote - Guido @ Emerce B2B Dinner.pdf
B2BOnline_Keynote - Guido @ Emerce B2B Dinner.pdf
 
Emerce Live Keynote - June 1st 2022.pdf
Emerce Live Keynote - June 1st 2022.pdfEmerce Live Keynote - June 1st 2022.pdf
Emerce Live Keynote - June 1st 2022.pdf
 
Why Marketplace is Your Next Big Initiative
Why Marketplace is Your Next Big InitiativeWhy Marketplace is Your Next Big Initiative
Why Marketplace is Your Next Big Initiative
 
Still A/B testing your buttons? You need to think (much) bigger...
Still A/B testing your buttons? You need to think (much) bigger...Still A/B testing your buttons? You need to think (much) bigger...
Still A/B testing your buttons? You need to think (much) bigger...
 
Persuasive e commerce workshop - Spryker
Persuasive e commerce workshop - SprykerPersuasive e commerce workshop - Spryker
Persuasive e commerce workshop - Spryker
 
JDE ecomweek presentation on user validation
JDE ecomweek presentation on user validationJDE ecomweek presentation on user validation
JDE ecomweek presentation on user validation
 
Picking software to run a business livestream
Picking software to run a business livestream Picking software to run a business livestream
Picking software to run a business livestream
 
Cross cultural website optimization
Cross cultural website optimizationCross cultural website optimization
Cross cultural website optimization
 
Building your optimization technology stack
Building your optimization technology stackBuilding your optimization technology stack
Building your optimization technology stack
 
Data driven decisions meet psychology
Data driven decisions meet psychologyData driven decisions meet psychology
Data driven decisions meet psychology
 
Building your optimization dream team
Building your optimization dream teamBuilding your optimization dream team
Building your optimization dream team
 
Creating an optimization culture
Creating an optimization cultureCreating an optimization culture
Creating an optimization culture
 
Optimization culture - Conversion Elite London 2018
Optimization culture - Conversion Elite London 2018Optimization culture - Conversion Elite London 2018
Optimization culture - Conversion Elite London 2018
 
Optimization culture @DDTT
Optimization culture @DDTTOptimization culture @DDTT
Optimization culture @DDTT
 
Persuasive ecommerce
Persuasive ecommercePersuasive ecommerce
Persuasive ecommerce
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Último (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Jisse Reitsma 123betaal

  • 2. Me • Jira ICT – Training in Magento, Joomla! & Drupal – Consult regarding implementation, security, architecture, etc – Some other things like open source • Jisse Reitsma (me) – PHP programming (Magento, Joomla! & Drupal) – System administrator – Security consultant – Writer of “Joomla!-templates ontwerpen”-book Jisse Reitsma (www.jira.nl) @Dutch Magento Day 2
  • 3. Steps • Rename “PayPal” to “123betaal” – Package name “Jira” – Module name “123Betaal” – Total name “Jira_123Betaal” • Debug everything that does not work • Re-check functionality Jisse Reitsma (www.jira.nl) @Dutch Magento Day 3
  • 4. Debugging In general Read before you start White Screen Of Death PHP Fatal Errors Regular PHP debugging Specific problems Garbled output because of XML syntax Legal but non-usable XML caused the buffer to go crazy The “Comment Everything” strategy Model-class not found Using a different name-base then Mage_* Opening up the Magento source Jisse Reitsma (www.jira.nl) @Dutch Magento Day 4
  • 5. php|architects Guido to Prog. with Magento • A very small book for a very complex application • Requires a good understanding of Object-Oriented Programming Jisse Reitsma (www.jira.nl) @Dutch Magento Day 5
  • 6. White Screen Of Death • ... or read the PHP Fatal Error from the screen • ... or read the Apache error-log • Check the syntax of your PHP-code • Check the syntax of your Magento-specific code • RTFM (“Read The Fine Manual”) Jisse Reitsma (www.jira.nl) @Dutch Magento Day 6
  • 7. Garbled output because of XML syntax Problem: When going to the “Settings” screen, instead of HTML something half compressed(?) is shown, but no error is logged. • Conclusion 1: The problem lies in a XML error. • Debug method: Comment everything but X • Conclusion 2: <123betaal> is causing the problem, because the variable $123betaal can not exit • Solution: Rename “123betaal” to “betaal123” Jisse Reitsma (www.jira.nl) @Dutch Magento Day 7
  • 8. Model “Mage_Jira_Betaal123” not found (1) Problem: XML in “system.xml” contains a <source_model>-tag defining “betaal123/source_paymentAction” as PHP-class to fill the parameter in question with options. The final PHP-class that should be called is “[local]Jira_Betaal123_Model_Source_PaymentAction” but instead Magento tries to call “[*]Mage_Jira_Model_123Betaal” which does not exist. • Debug method: Read all the PHP source-code involved Jisse Reitsma (www.jira.nl) @Dutch Magento Day 8
  • 9. Model “Mage_Jira_Betaal123” not found (2) • Mage_Adminhtml_Block_System_Config_Form::initFields() • Mage::getSingleton() • Mage::getModel() • Mage_Core_Model_Config::getModelInstance() • Mage_Core_Model_Config::getModelClassName() • Mage_Core_Model_Config::getGroupedClassName() • PROBLEM FOUND! Cause: <source_model> can never refer to a base-name other than Mage_* (for instance Jira_Betaal123) Solution: Rename “Jira_Betaal123” to “Mage_Betaal123” Jisse Reitsma (www.jira.nl) @Dutch Magento Day 9
  • 10. Copying module from server1 to server2 • Copy all files through a ZIP-patch • Refresh “Admin” page • Huh, nothing happens? • Disable Cache • Refresh “Admin” page • (no database action needed!) • It works Jisse Reitsma (www.jira.nl) @Dutch Magento Day 10
  • 11. Conclusions • Debugging requires a solid understanding of Object-Oriented PHP • Debugging takes more time because of the complex object-hierarchy within the Magento core • Third party packages can still cause (wierd) problems Jisse Reitsma (www.jira.nl) @Dutch Magento Day 11