SlideShare a Scribd company logo
1 of 16
Vulnero

Introducing a Zend Framework library that
 allows you develop applications on top of
               WordPress.




                                 By Andrew Kandels
Why They Want WordPress.

             Like it or not,
             When your
             (boss|client|friend)
             needs a
             (blog|website),
             they’re probably
             going to ask about
             WordPress.
Why We Want WordPress.




Because it’s documented, has a vast community, and is extendible.
It can be difficult.

  Plugins typically have …

  • Global and procedural functions

  • Lots of ugly, deprecated code

  • Bias toward simplicity
The Benefits of Using a Framework.


• More secure, reliable applications

• APIs to vendors like Google and Amazon

• Supports popular Web 2.0 functionality

• Familiar to other developers

• Benefit from the community



                                   Saves time.
What do I need Vulnero for?

require_once ‘Zend/Application/Bootstrap/Bootstrap.php’;

                          vs
Share Common Resources.

        Routing Requests    Add your own routes (/myapp)

                  Layouts   Render views in WordPress themes with
                            widgets and menus

            Configuration   Shared configuration

                  Caching   Cache expensive work

                Database    Leverage the WordPress MySQL DB

           Authentication   Authentication and access control using
                            WordPress sessions and user records




You don’t have to use the WordPress API to build on WordPress.
Add your own routes.

myapp.type = Zend_Controller_Router_Route
myapp.route = myapp/:controller/:action
myapp.defaults.module = default
myapp.defaults.controller = index
myapp.defaults.action = index



• Application routes take precedence

• Requests that don’t match a route are handled by WordPress

• Matched requests are served through Zend_Application’s controllers




Transparent to users who know controllers, views and routing in the Zend Framework.
Shared Layout.

Duplicate Layouts for your Website/App:

• Takes time and effort
• Changes mean double the updates
• APIs/code needed to shared content

Using the same layout means:

• Lots of themes for WordPress
• Take advantage of plugins
• Reuse menus and widgets for content




       Your WordPress theme works just like Zend_Layout (more transparency).
Widgets work like Controllers.




Becomes:
Create admin pages the same way.




Becomes:
Store key/value pairs.
Working with the WordPress API.

Vulnero accesses WordPress
functionality through a broker class:

• Responses can be standardized

• More object-oriented

• Additional filters/permissions




          Opens the door for other CMS integrations… Drupal? Ick, but maybe.
Vulnero can simulate and imitate WordPress.

Responses might be simulated for:

• Unit tests

• Command line scripts


Responses might be imitated for:

• Database migration scripts

• Workers and message queues

• Cronjobs for emails, notifications or background processing



 Vulnero can imitate WordPress for bootstrapping the database, caching and stored
                                 key/value pairs.
It’s open source. Vulnero 1.01 ready for download.
Links and Resources.

Project Site:     http://www.vulnero.com

    GitHub:       https://github.com/andrew-kandels/vulnero

        Me:       Andrew Kandels
                  akandels [at] gmail.com
                  @andrewkandels
                  http://andrewkandels.com

More Related Content

What's hot

Jdc 2010 - Maven, Intelligent Projects
Jdc 2010 - Maven, Intelligent ProjectsJdc 2010 - Maven, Intelligent Projects
Jdc 2010 - Maven, Intelligent Projects
Mert Çalışkan
 
Note - Apache Maven Intro
Note - Apache Maven IntroNote - Apache Maven Intro
Note - Apache Maven Intro
boyw165
 

What's hot (20)

Maven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in MavenMaven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in Maven
 
Maven
MavenMaven
Maven
 
Jdc 2010 - Maven, Intelligent Projects
Jdc 2010 - Maven, Intelligent ProjectsJdc 2010 - Maven, Intelligent Projects
Jdc 2010 - Maven, Intelligent Projects
 
How to help your editor love your vue component library
How to help your editor love your vue component libraryHow to help your editor love your vue component library
How to help your editor love your vue component library
 
An Introduction to Maven Part 1
An Introduction to Maven Part 1An Introduction to Maven Part 1
An Introduction to Maven Part 1
 
PHP on Windows - What's New
PHP on Windows - What's NewPHP on Windows - What's New
PHP on Windows - What's New
 
Maven
Maven Maven
Maven
 
Learning Maven by Example
Learning Maven by ExampleLearning Maven by Example
Learning Maven by Example
 
Introduction to Maven
Introduction to MavenIntroduction to Maven
Introduction to Maven
 
CollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPagesCollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPages
 
From Ant to Maven to Gradle a tale of CI tools for JVM
From Ant to Maven to Gradle a tale of CI tools for JVMFrom Ant to Maven to Gradle a tale of CI tools for JVM
From Ant to Maven to Gradle a tale of CI tools for JVM
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
Maven
MavenMaven
Maven
 
Note - Apache Maven Intro
Note - Apache Maven IntroNote - Apache Maven Intro
Note - Apache Maven Intro
 
4 maven junit
4 maven junit4 maven junit
4 maven junit
 
Geneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - MavenGeneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - Maven
 
Maven
MavenMaven
Maven
 
Alpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenAlpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache Maven
 
Maven
MavenMaven
Maven
 
Managed Beans: When, Why and How
Managed Beans: When, Why and HowManaged Beans: When, Why and How
Managed Beans: When, Why and How
 

Similar to WordPress and Zend Framework Integration with Vulnero

Unit Test for ZF SlideShare Component
Unit Test for ZF SlideShare ComponentUnit Test for ZF SlideShare Component
Unit Test for ZF SlideShare Component
Kaiuwe
 
Unit Test for ZF SlideShare Component
Unit Test for ZF SlideShare ComponentUnit Test for ZF SlideShare Component
Unit Test for ZF SlideShare Component
Kaiuwe
 
Unit Test for ZF SlideShare Component
Unit Test for ZF SlideShare ComponentUnit Test for ZF SlideShare Component
Unit Test for ZF SlideShare Component
Kaiuwe
 

Similar to WordPress and Zend Framework Integration with Vulnero (20)

From WordPress With Love
From WordPress With LoveFrom WordPress With Love
From WordPress With Love
 
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...
 
WordPress as an Application Framework
WordPress as an Application FrameworkWordPress as an Application Framework
WordPress as an Application Framework
 
Best Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft AzureBest Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft Azure
 
Headless cms architecture
Headless cms architectureHeadless cms architecture
Headless cms architecture
 
The WordPress Way
The WordPress WayThe WordPress Way
The WordPress Way
 
Cloud and agile software projects: Overview and Benefits
Cloud and agile software projects: Overview and BenefitsCloud and agile software projects: Overview and Benefits
Cloud and agile software projects: Overview and Benefits
 
Understanding Headless WordPress and Its Implications.pdf
Understanding Headless WordPress and Its Implications.pdfUnderstanding Headless WordPress and Its Implications.pdf
Understanding Headless WordPress and Its Implications.pdf
 
Morning Coffee - Windows Server 2016
Morning Coffee - Windows Server 2016Morning Coffee - Windows Server 2016
Morning Coffee - Windows Server 2016
 
MVC with Zend Framework
MVC with Zend FrameworkMVC with Zend Framework
MVC with Zend Framework
 
Extending WordPress as a pro
Extending WordPress as a proExtending WordPress as a pro
Extending WordPress as a pro
 
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
 
GCE11 Apache Rave Presentation
GCE11 Apache Rave PresentationGCE11 Apache Rave Presentation
GCE11 Apache Rave Presentation
 
Wordpress overview
Wordpress  overviewWordpress  overview
Wordpress overview
 
Managing Multisite: Lessons from a Large Network
Managing Multisite: Lessons from a Large NetworkManaging Multisite: Lessons from a Large Network
Managing Multisite: Lessons from a Large Network
 
Difference Between WordPress and PHP Websites.pdf
Difference Between WordPress and PHP Websites.pdfDifference Between WordPress and PHP Websites.pdf
Difference Between WordPress and PHP Websites.pdf
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
Unit Test for ZF SlideShare Component
Unit Test for ZF SlideShare ComponentUnit Test for ZF SlideShare Component
Unit Test for ZF SlideShare Component
 
Unit Test for ZF SlideShare Component
Unit Test for ZF SlideShare ComponentUnit Test for ZF SlideShare Component
Unit Test for ZF SlideShare Component
 
Unit Test for ZF SlideShare Component
Unit Test for ZF SlideShare ComponentUnit Test for ZF SlideShare Component
Unit Test for ZF SlideShare Component
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
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...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
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...
 
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)
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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...
 

WordPress and Zend Framework Integration with Vulnero

  • 1. Vulnero Introducing a Zend Framework library that allows you develop applications on top of WordPress. By Andrew Kandels
  • 2. Why They Want WordPress. Like it or not, When your (boss|client|friend) needs a (blog|website), they’re probably going to ask about WordPress.
  • 3. Why We Want WordPress. Because it’s documented, has a vast community, and is extendible.
  • 4. It can be difficult. Plugins typically have … • Global and procedural functions • Lots of ugly, deprecated code • Bias toward simplicity
  • 5. The Benefits of Using a Framework. • More secure, reliable applications • APIs to vendors like Google and Amazon • Supports popular Web 2.0 functionality • Familiar to other developers • Benefit from the community Saves time.
  • 6. What do I need Vulnero for? require_once ‘Zend/Application/Bootstrap/Bootstrap.php’; vs
  • 7. Share Common Resources. Routing Requests Add your own routes (/myapp) Layouts Render views in WordPress themes with widgets and menus Configuration Shared configuration Caching Cache expensive work Database Leverage the WordPress MySQL DB Authentication Authentication and access control using WordPress sessions and user records You don’t have to use the WordPress API to build on WordPress.
  • 8. Add your own routes. myapp.type = Zend_Controller_Router_Route myapp.route = myapp/:controller/:action myapp.defaults.module = default myapp.defaults.controller = index myapp.defaults.action = index • Application routes take precedence • Requests that don’t match a route are handled by WordPress • Matched requests are served through Zend_Application’s controllers Transparent to users who know controllers, views and routing in the Zend Framework.
  • 9. Shared Layout. Duplicate Layouts for your Website/App: • Takes time and effort • Changes mean double the updates • APIs/code needed to shared content Using the same layout means: • Lots of themes for WordPress • Take advantage of plugins • Reuse menus and widgets for content Your WordPress theme works just like Zend_Layout (more transparency).
  • 10. Widgets work like Controllers. Becomes:
  • 11. Create admin pages the same way. Becomes:
  • 13. Working with the WordPress API. Vulnero accesses WordPress functionality through a broker class: • Responses can be standardized • More object-oriented • Additional filters/permissions Opens the door for other CMS integrations… Drupal? Ick, but maybe.
  • 14. Vulnero can simulate and imitate WordPress. Responses might be simulated for: • Unit tests • Command line scripts Responses might be imitated for: • Database migration scripts • Workers and message queues • Cronjobs for emails, notifications or background processing Vulnero can imitate WordPress for bootstrapping the database, caching and stored key/value pairs.
  • 15. It’s open source. Vulnero 1.01 ready for download.
  • 16. Links and Resources. Project Site: http://www.vulnero.com GitHub: https://github.com/andrew-kandels/vulnero Me: Andrew Kandels akandels [at] gmail.com @andrewkandels http://andrewkandels.com