SlideShare a Scribd company logo
1 of 20
Download to read offline
Changes in the API
 are Blowin' in the
       Wind
      Michael Babker
       BabDev.com
Who Am I?
• Joomla! Junkie
• Soldier in US Army
• College Grad
• Loves to Travel
Looking Forward
• Retired Code - What’s been removed?
• Ready to Retire - The legacy classes
• Rookie Code - New Features
Some Stats
• Platform 12.1
 • 995 commits in 342 Pull Requests
 • 51 Contributors
 • 96,000+ lines edited
General Changes
• Minimum PHP Version - 5.3.1
• Conversion from JError and $db->getError
 to Exceptions
• MooTools 1.2 compatibility dropped
• Broken dependency on JObject
• CMS - DS constant removed
Retired Code - Classes
• JParameter
• JElement
• JHtmlImage
• JPane
• JSimpleXML
Retired Code - Extension
        Installation & Structure
• <install> extension    • Modules without
  manifests                mod_ prefix
• Non-MVC structure      • com_install and
  component files (i.e.     com_uninstall
  admin.content.php)
                         • Support for
• 1.5 file structure        client=both in
  (plugins/system/         language extensions
  sef.php)
Retired Code - Methods:
              JFactory
• getXMLParser
• _create** methods
• Support for no_html URL parameter
Retired Code - Methods:
          Access Package
• JAccess::getActions deprecated
• Replaced by:
 • getActionsFromFile
 • getActionsFromData
Retired Code - Methods:
       Application Package (Legacy)
• JApplicationHelper
 • getPath
 • _checkPath
• JController
 • authorize
 • setAccessControl
Retired Code - Methods:
           Database Package
Deprecated Method          Replacement
•   debug             •   setDebug
•   getEscaped        •   escape
•   getTableFields    •   getTableColumns
•   getTicker         •   getCount
•   loadResultArray   •   loadColumn
•   nameQuote (nq)    •   quoteName (qn)
Retired Code - Methods:
           HTML Package
• JHtml           • JHtmlList
 • core            • access
• JHtmlBehavior    • category
 • mootools        • specificordering
• JHtmlGrid
 • access
Retired Code - Methods:
               Log Package
• JLog
 • addEntry
 • getInstance
Retired Code - Methods:
               JUtility
• array_unshift_ref   • sendMail
• dump                • sendAdminMail
• getHash
• getToken
• isWinOS
• return_bytes
Retired Code - Methods:
          Utilities Package
• JDate         • JXmlElement
 • setOffset     • data
 • toFormat      • getAttribute
 • toMySQL
Ready to Retire - Legacy
• Located at libraries/legacy
• Collection of CMS specific and legacy
 classes
• Eases transition during CMS 3.x
• Includes legacy MVC, package specific
 exceptions, JTableContent, and many CMS
 specific form fields and HTML helpers
Rookie Code - New
              Features
• MVC structure        • Crypt Package
• JLanguageStemmer     • Basic HTML5
                        support in
• JDocumentImage        JDocument
• Improved             • DB Union
 autoloader
• JFilesystemPatcher
Refactored Database
               Package
• Legacy JDatabase    • New
 deprecated            JDatabaseFactory
• New base is         • Lazy connection
 JDatabaseDriver       handling
• Countable and       • Partial sub-query
 Iterator support      support
• Three new drivers
And Much, Much,
    More...
Questions?
• Contact
• Web: http://www.babdev.com
• Twitter: @mbabker
• GitHub: https://github.com/mbabker

More Related Content

What's hot

Session 39 - Hibernate - Part 1
Session 39 - Hibernate - Part 1Session 39 - Hibernate - Part 1
Session 39 - Hibernate - Part 1PawanMM
 
Seda与Java并行编程点滴
Seda与Java并行编程点滴Seda与Java并行编程点滴
Seda与Java并行编程点滴Benjamin Tan
 
A content repository for your PHP application or CMS?
A content repository for your PHP application or CMS?A content repository for your PHP application or CMS?
A content repository for your PHP application or CMS?Paul Borgermans
 
Build your LDAP Web Interface with LinID Directory Manager
Build your LDAP Web Interface with LinID Directory ManagerBuild your LDAP Web Interface with LinID Directory Manager
Build your LDAP Web Interface with LinID Directory ManagerLDAPCon
 
Servletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postServletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postvamsi krishna
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...J V
 
Simon Jia - The Kohana Framework
Simon Jia - The Kohana FrameworkSimon Jia - The Kohana Framework
Simon Jia - The Kohana FrameworkCaroline_Rose
 
NiFi - First approach
NiFi - First approachNiFi - First approach
NiFi - First approachMickael Cassy
 
MongoDB SF Python
MongoDB SF PythonMongoDB SF Python
MongoDB SF PythonMike Dirolf
 
Linux Hosting Training Course [Level 1] - Lec 7
Linux Hosting Training Course [Level 1] - Lec 7Linux Hosting Training Course [Level 1] - Lec 7
Linux Hosting Training Course [Level 1] - Lec 7Ramy Allam
 
Session 29 - Servlets - Part 5
Session 29 - Servlets - Part 5Session 29 - Servlets - Part 5
Session 29 - Servlets - Part 5PawanMM
 
What's New in OpenLDAP
What's New in OpenLDAPWhat's New in OpenLDAP
What's New in OpenLDAPLDAPCon
 
Session 35 - Design Patterns
Session 35 - Design PatternsSession 35 - Design Patterns
Session 35 - Design PatternsPawanMM
 
Do The Right Thing! How LDAP servers should help LDAP clients
Do The Right Thing! How LDAP servers should help LDAP clientsDo The Right Thing! How LDAP servers should help LDAP clients
Do The Right Thing! How LDAP servers should help LDAP clientsLDAPCon
 
Java web services soap rest training from hyderabad
Java web services soap rest training from hyderabadJava web services soap rest training from hyderabad
Java web services soap rest training from hyderabadFuturePoint Technologies
 
Session 34 - JDBC Best Practices, Introduction to Design Patterns
Session 34 - JDBC Best Practices, Introduction to Design PatternsSession 34 - JDBC Best Practices, Introduction to Design Patterns
Session 34 - JDBC Best Practices, Introduction to Design PatternsPawanMM
 
ActiveMQ Performance Tuning
ActiveMQ Performance TuningActiveMQ Performance Tuning
ActiveMQ Performance TuningChristian Posta
 

What's hot (20)

Session 39 - Hibernate - Part 1
Session 39 - Hibernate - Part 1Session 39 - Hibernate - Part 1
Session 39 - Hibernate - Part 1
 
Php
PhpPhp
Php
 
Ruby on rails for beginers
Ruby on rails for beginersRuby on rails for beginers
Ruby on rails for beginers
 
Seda与Java并行编程点滴
Seda与Java并行编程点滴Seda与Java并行编程点滴
Seda与Java并行编程点滴
 
A content repository for your PHP application or CMS?
A content repository for your PHP application or CMS?A content repository for your PHP application or CMS?
A content repository for your PHP application or CMS?
 
Build your LDAP Web Interface with LinID Directory Manager
Build your LDAP Web Interface with LinID Directory ManagerBuild your LDAP Web Interface with LinID Directory Manager
Build your LDAP Web Interface with LinID Directory Manager
 
Servletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postServletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,post
 
Codeinator
CodeinatorCodeinator
Codeinator
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
Simon Jia - The Kohana Framework
Simon Jia - The Kohana FrameworkSimon Jia - The Kohana Framework
Simon Jia - The Kohana Framework
 
NiFi - First approach
NiFi - First approachNiFi - First approach
NiFi - First approach
 
MongoDB SF Python
MongoDB SF PythonMongoDB SF Python
MongoDB SF Python
 
Linux Hosting Training Course [Level 1] - Lec 7
Linux Hosting Training Course [Level 1] - Lec 7Linux Hosting Training Course [Level 1] - Lec 7
Linux Hosting Training Course [Level 1] - Lec 7
 
Session 29 - Servlets - Part 5
Session 29 - Servlets - Part 5Session 29 - Servlets - Part 5
Session 29 - Servlets - Part 5
 
What's New in OpenLDAP
What's New in OpenLDAPWhat's New in OpenLDAP
What's New in OpenLDAP
 
Session 35 - Design Patterns
Session 35 - Design PatternsSession 35 - Design Patterns
Session 35 - Design Patterns
 
Do The Right Thing! How LDAP servers should help LDAP clients
Do The Right Thing! How LDAP servers should help LDAP clientsDo The Right Thing! How LDAP servers should help LDAP clients
Do The Right Thing! How LDAP servers should help LDAP clients
 
Java web services soap rest training from hyderabad
Java web services soap rest training from hyderabadJava web services soap rest training from hyderabad
Java web services soap rest training from hyderabad
 
Session 34 - JDBC Best Practices, Introduction to Design Patterns
Session 34 - JDBC Best Practices, Introduction to Design PatternsSession 34 - JDBC Best Practices, Introduction to Design Patterns
Session 34 - JDBC Best Practices, Introduction to Design Patterns
 
ActiveMQ Performance Tuning
ActiveMQ Performance TuningActiveMQ Performance Tuning
ActiveMQ Performance Tuning
 

Similar to API Changes in Joomla Platform 12.1

Magento performance feat. core Hacks
Magento performance feat. core HacksMagento performance feat. core Hacks
Magento performance feat. core HacksDaniel Niedergesäß
 
Adding Support for Networking and Web Technologies to an Embedded System
Adding Support for Networking and Web Technologies to an Embedded SystemAdding Support for Networking and Web Technologies to an Embedded System
Adding Support for Networking and Web Technologies to an Embedded SystemJohn Efstathiades
 
OrigoDB - take the red pill
OrigoDB - take the red pillOrigoDB - take the red pill
OrigoDB - take the red pillRobert Friberg
 
Pharo 10 and beyond
 Pharo 10 and beyond Pharo 10 and beyond
Pharo 10 and beyondESUG
 
Staying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPStaying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPOscar Merida
 
Behat bdd training (php) course slides pdf
Behat bdd training (php) course slides pdfBehat bdd training (php) course slides pdf
Behat bdd training (php) course slides pdfseleniumbootcamp
 
6 Months PHP internship in Noida
6 Months PHP internship in Noida6 Months PHP internship in Noida
6 Months PHP internship in NoidaTech Mentro
 
A Lap Around PowerShell 3.0
A Lap Around PowerShell 3.0A Lap Around PowerShell 3.0
A Lap Around PowerShell 3.0Sarah Dutkiewicz
 
Unleashing the Power: A Lap Around PowerShell 3.0
Unleashing the Power: A Lap Around PowerShell 3.0Unleashing the Power: A Lap Around PowerShell 3.0
Unleashing the Power: A Lap Around PowerShell 3.0Sarah Dutkiewicz
 
Developing in MODx
Developing in MODxDeveloping in MODx
Developing in MODxMODxpo
 
MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?DrupalCamp Kyiv
 
Meet Magento Belarus - Magento2: What to expect and when? - Elena Leonova
Meet Magento Belarus -  Magento2: What to expect and when? - Elena LeonovaMeet Magento Belarus -  Magento2: What to expect and when? - Elena Leonova
Meet Magento Belarus - Magento2: What to expect and when? - Elena LeonovaElena Leonova
 
SilverStripe From a Developer's Perspective
SilverStripe From a Developer's PerspectiveSilverStripe From a Developer's Perspective
SilverStripe From a Developer's Perspectiveajshort
 
The Future of Plugin Dev
The Future of Plugin DevThe Future of Plugin Dev
The Future of Plugin DevBrandon Kelly
 
Using WordPress for leading local newspaper websites
Using WordPress for leading local newspaper websitesUsing WordPress for leading local newspaper websites
Using WordPress for leading local newspaper websitesChristoph Daum
 
Introduction to firebidSQL 3.x
Introduction to firebidSQL 3.xIntroduction to firebidSQL 3.x
Introduction to firebidSQL 3.xFabio Codebue
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Dutyreedmaniac
 

Similar to API Changes in Joomla Platform 12.1 (20)

Magento performance feat. core Hacks
Magento performance feat. core HacksMagento performance feat. core Hacks
Magento performance feat. core Hacks
 
Introduction to Monsoon PHP framework
Introduction to Monsoon PHP frameworkIntroduction to Monsoon PHP framework
Introduction to Monsoon PHP framework
 
Adding Support for Networking and Web Technologies to an Embedded System
Adding Support for Networking and Web Technologies to an Embedded SystemAdding Support for Networking and Web Technologies to an Embedded System
Adding Support for Networking and Web Technologies to an Embedded System
 
OrigoDB - take the red pill
OrigoDB - take the red pillOrigoDB - take the red pill
OrigoDB - take the red pill
 
Pharo 10 and beyond
 Pharo 10 and beyond Pharo 10 and beyond
Pharo 10 and beyond
 
Staying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPStaying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHP
 
Behat bdd training (php) course slides pdf
Behat bdd training (php) course slides pdfBehat bdd training (php) course slides pdf
Behat bdd training (php) course slides pdf
 
6 Months PHP internship in Noida
6 Months PHP internship in Noida6 Months PHP internship in Noida
6 Months PHP internship in Noida
 
A Lap Around PowerShell 3.0
A Lap Around PowerShell 3.0A Lap Around PowerShell 3.0
A Lap Around PowerShell 3.0
 
Php mysql online training
Php mysql online trainingPhp mysql online training
Php mysql online training
 
Unleashing the Power: A Lap Around PowerShell 3.0
Unleashing the Power: A Lap Around PowerShell 3.0Unleashing the Power: A Lap Around PowerShell 3.0
Unleashing the Power: A Lap Around PowerShell 3.0
 
Developing in MODx
Developing in MODxDeveloping in MODx
Developing in MODx
 
MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?
 
Meet Magento Belarus - Magento2: What to expect and when? - Elena Leonova
Meet Magento Belarus -  Magento2: What to expect and when? - Elena LeonovaMeet Magento Belarus -  Magento2: What to expect and when? - Elena Leonova
Meet Magento Belarus - Magento2: What to expect and when? - Elena Leonova
 
SilverStripe From a Developer's Perspective
SilverStripe From a Developer's PerspectiveSilverStripe From a Developer's Perspective
SilverStripe From a Developer's Perspective
 
The Future of Plugin Dev
The Future of Plugin DevThe Future of Plugin Dev
The Future of Plugin Dev
 
Using WordPress for leading local newspaper websites
Using WordPress for leading local newspaper websitesUsing WordPress for leading local newspaper websites
Using WordPress for leading local newspaper websites
 
Introduction to firebidSQL 3.x
Introduction to firebidSQL 3.xIntroduction to firebidSQL 3.x
Introduction to firebidSQL 3.x
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 

More from Michael Babker

The Success of Joomla! 3
The Success of Joomla! 3The Success of Joomla! 3
The Success of Joomla! 3Michael Babker
 
Getting Started with the Joomla! Framework
Getting Started with the Joomla! FrameworkGetting Started with the Joomla! Framework
Getting Started with the Joomla! FrameworkMichael Babker
 
Looking at Joomla! 3.3
Looking at Joomla! 3.3Looking at Joomla! 3.3
Looking at Joomla! 3.3Michael Babker
 
Bringing Travis Onto Your Development Team
Bringing Travis Onto Your Development TeamBringing Travis Onto Your Development Team
Bringing Travis Onto Your Development TeamMichael Babker
 
Joomla! Framework + Issue Management + GitHub = Fun Code
Joomla! Framework + Issue Management + GitHub = Fun CodeJoomla! Framework + Issue Management + GitHub = Fun Code
Joomla! Framework + Issue Management + GitHub = Fun CodeMichael Babker
 
CoderFaire 2013 - Getting Started with the Joomla! Framework
CoderFaire 2013 - Getting Started with the Joomla! FrameworkCoderFaire 2013 - Getting Started with the Joomla! Framework
CoderFaire 2013 - Getting Started with the Joomla! FrameworkMichael Babker
 

More from Michael Babker (7)

Joomla 3 Evolution
Joomla 3 EvolutionJoomla 3 Evolution
Joomla 3 Evolution
 
The Success of Joomla! 3
The Success of Joomla! 3The Success of Joomla! 3
The Success of Joomla! 3
 
Getting Started with the Joomla! Framework
Getting Started with the Joomla! FrameworkGetting Started with the Joomla! Framework
Getting Started with the Joomla! Framework
 
Looking at Joomla! 3.3
Looking at Joomla! 3.3Looking at Joomla! 3.3
Looking at Joomla! 3.3
 
Bringing Travis Onto Your Development Team
Bringing Travis Onto Your Development TeamBringing Travis Onto Your Development Team
Bringing Travis Onto Your Development Team
 
Joomla! Framework + Issue Management + GitHub = Fun Code
Joomla! Framework + Issue Management + GitHub = Fun CodeJoomla! Framework + Issue Management + GitHub = Fun Code
Joomla! Framework + Issue Management + GitHub = Fun Code
 
CoderFaire 2013 - Getting Started with the Joomla! Framework
CoderFaire 2013 - Getting Started with the Joomla! FrameworkCoderFaire 2013 - Getting Started with the Joomla! Framework
CoderFaire 2013 - Getting Started with the Joomla! Framework
 

Recently uploaded

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Recently uploaded (20)

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 

API Changes in Joomla Platform 12.1

  • 1. Changes in the API are Blowin' in the Wind Michael Babker BabDev.com
  • 2. Who Am I? • Joomla! Junkie • Soldier in US Army • College Grad • Loves to Travel
  • 3. Looking Forward • Retired Code - What’s been removed? • Ready to Retire - The legacy classes • Rookie Code - New Features
  • 4. Some Stats • Platform 12.1 • 995 commits in 342 Pull Requests • 51 Contributors • 96,000+ lines edited
  • 5. General Changes • Minimum PHP Version - 5.3.1 • Conversion from JError and $db->getError to Exceptions • MooTools 1.2 compatibility dropped • Broken dependency on JObject • CMS - DS constant removed
  • 6. Retired Code - Classes • JParameter • JElement • JHtmlImage • JPane • JSimpleXML
  • 7. Retired Code - Extension Installation & Structure • <install> extension • Modules without manifests mod_ prefix • Non-MVC structure • com_install and component files (i.e. com_uninstall admin.content.php) • Support for • 1.5 file structure client=both in (plugins/system/ language extensions sef.php)
  • 8. Retired Code - Methods: JFactory • getXMLParser • _create** methods • Support for no_html URL parameter
  • 9. Retired Code - Methods: Access Package • JAccess::getActions deprecated • Replaced by: • getActionsFromFile • getActionsFromData
  • 10. Retired Code - Methods: Application Package (Legacy) • JApplicationHelper • getPath • _checkPath • JController • authorize • setAccessControl
  • 11. Retired Code - Methods: Database Package Deprecated Method Replacement • debug • setDebug • getEscaped • escape • getTableFields • getTableColumns • getTicker • getCount • loadResultArray • loadColumn • nameQuote (nq) • quoteName (qn)
  • 12. Retired Code - Methods: HTML Package • JHtml • JHtmlList • core • access • JHtmlBehavior • category • mootools • specificordering • JHtmlGrid • access
  • 13. Retired Code - Methods: Log Package • JLog • addEntry • getInstance
  • 14. Retired Code - Methods: JUtility • array_unshift_ref • sendMail • dump • sendAdminMail • getHash • getToken • isWinOS • return_bytes
  • 15. Retired Code - Methods: Utilities Package • JDate • JXmlElement • setOffset • data • toFormat • getAttribute • toMySQL
  • 16. Ready to Retire - Legacy • Located at libraries/legacy • Collection of CMS specific and legacy classes • Eases transition during CMS 3.x • Includes legacy MVC, package specific exceptions, JTableContent, and many CMS specific form fields and HTML helpers
  • 17. Rookie Code - New Features • MVC structure • Crypt Package • JLanguageStemmer • Basic HTML5 support in • JDocumentImage JDocument • Improved • DB Union autoloader • JFilesystemPatcher
  • 18. Refactored Database Package • Legacy JDatabase • New deprecated JDatabaseFactory • New base is • Lazy connection JDatabaseDriver handling • Countable and • Partial sub-query Iterator support support • Three new drivers
  • 19. And Much, Much, More...
  • 20. Questions? • Contact • Web: http://www.babdev.com • Twitter: @mbabker • GitHub: https://github.com/mbabker

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. First, to give an idea in numbers about how active development has been on the Platform, here&amp;#x2019;s some stats about the changes in Platform 12.1. Almost 1,000 commits were made to the Platform in the 342 pull requests submitted by 51 different contributors. Including the Platform documentation and test suite, over 96,000 lines were modified over the course of the last four months.\n
  5. - Support for PHP 5.2 has been dropped as it is a EOL product. To get around a bug with our language handling and PHP 5.3.0, 5.3.1 is our minimum version requirement at this time.\n\n- To migrate from the legacy error handling, much work has gone into converting the use of JError and JDatabase&amp;#x2019;s error handling logic to using PHP Exceptions.\n\n- The MooTools compatibility layer which enabled backwards compatibility to MooTools 1.2 has been removed. Scripts should be updated to be compatible with MooTools 1.4.\n\n- Many classes that extended JObject no longer do so. A full list is available on docs.joomla.org in the &amp;#x201C;Potential B/C issues in J! 3.0&amp;#x201D; article.\n\n- In the CMS, the DS constant has been removed. PHP is able to handle the mixed use of slashes without issue. If for some reason you really need it, you can use PHP&apos;s DIRECTORY_SEPARATOR constant.\n\n\n
  6. \n
  7. - Support for extension manifests with the &lt;install&gt; base tag has been removed. Since 1.6, extensions should be using &lt;extension&gt; as their base tag, except for language packs which use &lt;metafile&gt;.\n\n- Automatic loading of non-MVC style files such as admin.content.html.php has been removed. Extensions wishing to continue using these style files will need to load them on their own. Best practice would be to refactor your extension to use the MVC structure.\n\n- Support for the pre-1.6 file structure for plugins has been removed. All plugins must now be in separate folders within their plugin types.\n\n- Legacy support for modules named without the mod_ prefix has been removed. This is holdover from J! 1.0.\n\n- Support for com_install and com_install, and the associated install_script and uninstall_script tags in extension manifests, has been removed. Extensions should instead use a script file. All extension types except for language, library, and templates support these classes.\n\n- Support for client=both in the &lt;metafile&gt; tag of language packs has been removed. Those distributing language packs should specify the client (site or administrator) and install the packs for each client separately. Best practice for distributing language packs for both applications would be to use a package extension.\n
  8. Within JFactory, the getXMLParser and _create** methods have been removed. getXMLParser is replaced by getFeedParser, and the _create** methods are replaced by non-underscored methods. Lastly, support for the no_html parameter, which was used in JFactory::getDocument, has been removed, and the method now returns only a JDocumentHtml instance.\n
  9. JAccess&amp;#x2019; getActions method has been deprecated. Replacing it are two new methods, getActionsFromFile and getActionsFromData. The file method attempts to load the data from a specified file, while the data method works directly with a SimpleXMLElement instance.\n
  10. The Application package (referring to what is now considered legacy) has been cleaned up a bit to remove code dealing with CMS 1.0 and 1.5 conventions.\n\nIn JApplicationHelper, the methods dealing with loading files using older naming conventions (i.e. admin.content.html.php and toolbar.content.php) have been completely removed.\n\nIn JController, the setAccessControl method which dealt with the CMS 1.5 ACL has been removed as well as the authorize (with a z) method. The latter is replaced by the authorise (with a s) method, though this too is now deprecated and set to be removed soon.\n
  11. In addition to the database package having been refactored (more on that later), several deprecated methods have been removed. On the screen are just a few of those methods and listed next to them are their replacement methods. In addition to these methods, also removed are the addQuoted, hasUTF, explain, isQuoted, and queryBatch methods. Right now, the getErrorNum, getErrorMsg, and stderr methods remain in the legacy JDatabase class, but these are deprecated in favor of catching the RuntimeExceptions that are thrown.\n
  12. Several methods have been removed from the HTML package. The JHtmlBehavior::framework() method replaces JHtml::core() and JHtmlBehavior::mootools(). In JHtmlGrid, the access method which was coupled into CMS 1.5 ACL has been removed.\n\nIn JHtmlList, the access, category, and specificordering methods have been removed. The first is replaced by JHtmlAccess::assetgrouplist(), the category method is replaced by JHtmlCategory, and specificordering by the ordering method in the same class.\n
  13. In the Log package, the addEntry and getInstance methods have been removed. In place of the getInstance method, users should create their log using the addLogger method. Entries should be written using JLog&amp;#x2019;s add method.\n
  14. JUtility itself earned its own slide since all methods but one were removed from the class. The only two without replacements are array_unshift_ref and dump. The getHash and isWinOS methods are now in the JApplication legacy class, sendMail and sendAdminMail are now handled by JMail, getToken is now handled by JSession, and return_bytes is handled by JHtmlNumber::bytes().\n
  15. Here&amp;#x2019;s some of the other methods in the Utilities package that were removed.\n\nIn JDate, the setOffset method, which dealt with setting timezones for CMS 1.5, has been removed in favor of setTimezone. The toFormat method has been replaced by format. Lastly, the toMySQL method has been replaced by toSql as an improved method for formatting timestamps for the various databases.\n\nJXmlElement itself has now been deprecated and is slotted for removal with Platform 13.3. Users should now access data directly from SimpleXMLElement instead. Aside from this deprecation, the previously deprecated data and getAttribute methods have both been removed without an API replacement.\n
  16. The legacy tree is a tree of classes that are ready to be retired from the Platform. Located at libraries/legacy, this tree is a collection of classes that are either CMS specific (such as JHelp) or are legacy in nature (such as the previously deprecated JError and JRequest classes). This tree exists to help the CMS transition to Platform 12 by making these classes available to developers still, but their use is discouraged in many cases as these classes will go away with a future CMS and Platform version (note that CMS classes will eventually be moved to libraries/cms).\n
  17. Platform 12 has brought about some great new features that the CMS will be able to take advantage of in the 3.x series, with the biggest one being new MVC structure.\n\nThe stemmer classes used with the Smart Search component have been ported into the Language package on the platform.\n\nThe autoloader has been vastly improved upon in Platform 12. It allows other libraries to register their prefix, enabling the libraries to be autoloaded instead of using require statements. Multiple paths can also be assigned to a single prefix (i.e. the J prefix assigned to libraries/cms, joomla, and legacy).\n\nA new class has been added to the Filesystem package that allows users to work with DIFFs between files.\n\nA replacement for JSimpleCrypt has been added in the form of the Crypt package. It offers improved encryption and decryption support to the Platform and offers four &amp;#x201C;ciphers&amp;#x201D; at the moment.\n\nIn JDocument, basic support for checking for HTML5 has been added. Downstream users can set the HTML5 state when using a JDocumentHtml instance, which enables template developers to set the HTML5 state and extension developers to better create output supporting their environment.\n\nIn JDatabaseQuery, support has been added for the UNION element. This allows users to build queries using UNION or UNION DISTINCT.\n
  18. During Platform 12.1 development, the database package underwent a heavy review and refactor. The end result is that three new database drivers were added and the class structure was reorganized to add flexibility and be proactive for future development. All of the legacy JDatabase child classes will still be present through CMS 3.x to allow for backwards compatibility during the transition.\n\nAlong with the refactor, several new features are added to the package. Through the new JDatabaseIterator, support is present for PHP&amp;#x2019;s Countable and Iterator interfaces. As well is a new JDatabaseFactory with support for retrieving the child objects for any of the database drivers (importer, exporter, iterator).\n\nThe drivers now use a lazy connection method. The API checks to ensure a connection is not already established before doing so and properly disconnects upon completion. Also supported is the drivers attempting to reconnect to servers which have had their connections dropped.\n\nThanks to Gabrielle, who&amp;#x2019;s gone to great lengths to get the PostgreSQL driver added to the Platform, there is now partial support for sub-queries in the database package. Currently, it is only supported by the INSERT and FROM elements.\n
  19. \n
  20. \n