SlideShare a Scribd company logo
Re-imagining
  CakePHP
  The path to CakePHP 2.0
Graham Weldon

@predominant
graham.weldon@cakedc.com
http://cakedc.com
http://grahamweldon.com
Jester
Motivations

Love CakePHP
Hate doing repetitive code
An educator
PHP
Support
 Adios PHP 4
PHP Support

Dropping PHP 4 support
Supporting PHP 5.2 and above
Shortcuts
Removed:      PHP5 constant
e()
a()
aa()
r()
ife()
params()
up()
low()
Unit
 Testing
Out with the SimpleTest
  In with the PHPUnit
Unit Testing
Arguably one of the bigger changes
Enables better PHP 5 support
More actively maintained
Easily integrated with CruiseControl
De-facto PHP standard for Unit Testing
Install PHPUnit with PEAR
Faster
Unit Testing

PHPUnit, at what cost?
No more group tests
Mocks are different.. but awesome++
startTest() and endTest() deprecated
.. thats about it.
Collections
   Organising
Collections

Behaviors
Components
Helpers
Shells
SPL
Replacing what we can
SPL
Standard PHP Library
Provides awesome File and Folder
operations
Classes handy for a whole range of things
No need to re-implement in the core
CakePHP 1.x was ahead of its time
PHP has caught up
Time to cut the fat
Exceptions
Exceptions

Using exceptions to indicate errors in the
core
Easier to control
More “OO”
Removing cakeError
Request / Response

 Request represents an incoming request
 It replaces functionality through Controller,
 Dispatcher, RequestHandler and $this-
 >params everywhere
 ArrayAccess implementation for backwards
 compatibility
Sessions
Sessions
Remove duplicated code (DRY)
Shouldn’t be always included (1.3 fix)
Modelise data handling
Access anywhere
Allow simple customisation
Separate Caching, Database, etc.
Sessions
Sessions
           SessionHandler


Database       Cache        PHP
Sessions
           SessionHandler


Database       Cache        PHP
Sessions
           SessionHandler


Database        Cache          PHP


           Your Crazy Engine
Sessions
           SessionHandler


Database        Cache              PHP
                                 Cake
                                Session
           Your Crazy Engine    Handler
                               Interface
Hang on!
 That looks familiar
Javascript (v1.3)
         JavascriptHelper


jQuery       Prototype      Mootools
Javascript (v1.3)
         JavascriptHelper


jQuery       Prototype      Mootools
Javascript (v1.3)
         JavascriptHelper


jQuery        Prototype       Mootools


          Your Super Engine
Javascript (v1.3)
         JavascriptHelper


jQuery        Prototype          Mootools


          Your Super Engine

            JsBaseEngineHelper
Lazy
Loading
Lazy Loading

Nested Objects (some of them)
 Components
 Helpers
 Tasks
Cheap Optimisation
XML
Making it make sense!
XML
As much as one can make XML make sense..
.. we’re doing it
1.x was very CakePHP specific with XML
Wasn’t handy for integration
Didn’t handle namespaces well
Didn’t allow for ordered nodes
Build on top of SimpleXML
Getting
feedback
I can has?
      No.
   Well.. Yes.
    But no.
Beta
Beta
Beta




       Alpha?
Beta




       Alpha?
Beta




       Alpha?




                Dev
Beta




       Alpha?




                Dev
Beta




       Alpha?




                Dev

                      ... runs?
Beta




                        Most of the
       Alpha?         time.. Depends
                      on the progress.


                Dev

                      ... runs?
Re-imaginging CakePHP

More Related Content

PDF
PHP 5.4 - Begin your love affair with traits
Graham Weldon
 
KEY
SydPHP March 2012 Meetup
Graham Weldon
 
KEY
CakePHP - The Path to 2.0
Graham Weldon
 
KEY
CakePHP 2.0 - PHP Matsuri 2011
Graham Weldon
 
PDF
An introduction to Titanium
Graham Weldon
 
PDF
Myphp-busters: symfony framework
Stefan Koopmanschap
 
PDF
The Power of Refactoring
Stefan Koopmanschap
 
PDF
Myphp-busters: symfony framework (PHPCon.it)
Stefan Koopmanschap
 
PHP 5.4 - Begin your love affair with traits
Graham Weldon
 
SydPHP March 2012 Meetup
Graham Weldon
 
CakePHP - The Path to 2.0
Graham Weldon
 
CakePHP 2.0 - PHP Matsuri 2011
Graham Weldon
 
An introduction to Titanium
Graham Weldon
 
Myphp-busters: symfony framework
Stefan Koopmanschap
 
The Power of Refactoring
Stefan Koopmanschap
 
Myphp-busters: symfony framework (PHPCon.it)
Stefan Koopmanschap
 

What's hot (20)

PDF
The Power Of Refactoring (PHPNW)
Stefan Koopmanschap
 
PDF
mod_php vs FastCGI vs FPM vs CLI
Jacques Woodcock
 
PDF
Composer - The missing package manager for PHP
Tareq Hasan
 
PDF
2021laravelconftwslides6
LiviaLiaoFontech
 
PPT
Coldfusion
Ram
 
PDF
Php Dependency Management with Composer ZendCon 2016
Clark Everetts
 
PDF
A look at FastCgi & Mod_PHP architecture
Aimee Maree
 
PPTX
Upstate CSCI 450 PHP Chapters 5, 12, 13
DanWooster1
 
PPT
Building Big on the Web
Cal Henderson
 
PPT
Integrating symfony and Zend Framework (PHPBarcelona 2009)
Stefan Koopmanschap
 
PPTX
Performance tips for Symfony2 & PHP
Max Romanovsky
 
PPTX
What's the "right" PHP Framework?
Barry Jones
 
PPTX
Zend con 2016 bdd with behat for beginners
Adam Englander
 
PPTX
Taming the resource tiger
Elizabeth Smith
 
PDF
Console Apps: php artisan forthe:win
Joe Ferguson
 
PDF
Padre user experience
Charlie Gonzalez
 
PPTX
Phalcon 2 - PHP Brazil Conference
Jackson F. de A. Mafra
 
KEY
SydPHP May 2012 - Deployment
Graham Weldon
 
PDF
Scaling php - Intercon php
Handrus Nogueira
 
PDF
Modern Perl for the Unfrozen Paleolithic Perl Programmer
John Anderson
 
The Power Of Refactoring (PHPNW)
Stefan Koopmanschap
 
mod_php vs FastCGI vs FPM vs CLI
Jacques Woodcock
 
Composer - The missing package manager for PHP
Tareq Hasan
 
2021laravelconftwslides6
LiviaLiaoFontech
 
Coldfusion
Ram
 
Php Dependency Management with Composer ZendCon 2016
Clark Everetts
 
A look at FastCgi & Mod_PHP architecture
Aimee Maree
 
Upstate CSCI 450 PHP Chapters 5, 12, 13
DanWooster1
 
Building Big on the Web
Cal Henderson
 
Integrating symfony and Zend Framework (PHPBarcelona 2009)
Stefan Koopmanschap
 
Performance tips for Symfony2 & PHP
Max Romanovsky
 
What's the "right" PHP Framework?
Barry Jones
 
Zend con 2016 bdd with behat for beginners
Adam Englander
 
Taming the resource tiger
Elizabeth Smith
 
Console Apps: php artisan forthe:win
Joe Ferguson
 
Padre user experience
Charlie Gonzalez
 
Phalcon 2 - PHP Brazil Conference
Jackson F. de A. Mafra
 
SydPHP May 2012 - Deployment
Graham Weldon
 
Scaling php - Intercon php
Handrus Nogueira
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
John Anderson
 
Ad

Similar to Re-imaginging CakePHP (20)

KEY
CakePHP 2.0 - It'll rock your world
Graham Weldon
 
KEY
Site Performance - From Pinto to Ferrari
Joseph Scott
 
PDF
All the Laravel things: up and running to making $$
Joe Ferguson
 
PDF
HTTP cache @ PUG Rome 03-29-2011
Alessandro Nadalin
 
KEY
DevOps for Developers
Mayflower GmbH
 
KEY
Dev ops for developers
Johann-Peter Hartmann
 
PDF
Sparklife - Life In The Trenches With Spark
Ian Pointer
 
PPT
Language Barriers
Cristian Vat
 
PPTX
Performance Tuning with XHProf
Salesforce Engineering
 
KEY
Fall 2011 PHP Class - Session 1
jimbojsb
 
PDF
Lessons Learnt in 2009
pratiknaik
 
PPS
Flickr Services
royans
 
PPS
Flickr Services
royans
 
PDF
Erlang White Label
Mickaël Rémond
 
ODP
Search Lucene
Jeremy Coates
 
PDF
ITB2019 Real World Scenarios for Modern CFML - Nolan Erck
Ortus Solutions, Corp
 
PDF
Winter%200405%20-%20Beginning%20PHP
tutorialsruby
 
PDF
Winter%200405%20-%20Beginning%20PHP
tutorialsruby
 
PPT
Rails Vs CakePHP
Gautam Rege
 
ODP
Introduce Django
Chui-Wen Chiu
 
CakePHP 2.0 - It'll rock your world
Graham Weldon
 
Site Performance - From Pinto to Ferrari
Joseph Scott
 
All the Laravel things: up and running to making $$
Joe Ferguson
 
HTTP cache @ PUG Rome 03-29-2011
Alessandro Nadalin
 
DevOps for Developers
Mayflower GmbH
 
Dev ops for developers
Johann-Peter Hartmann
 
Sparklife - Life In The Trenches With Spark
Ian Pointer
 
Language Barriers
Cristian Vat
 
Performance Tuning with XHProf
Salesforce Engineering
 
Fall 2011 PHP Class - Session 1
jimbojsb
 
Lessons Learnt in 2009
pratiknaik
 
Flickr Services
royans
 
Flickr Services
royans
 
Erlang White Label
Mickaël Rémond
 
Search Lucene
Jeremy Coates
 
ITB2019 Real World Scenarios for Modern CFML - Nolan Erck
Ortus Solutions, Corp
 
Winter%200405%20-%20Beginning%20PHP
tutorialsruby
 
Winter%200405%20-%20Beginning%20PHP
tutorialsruby
 
Rails Vs CakePHP
Gautam Rege
 
Introduce Django
Chui-Wen Chiu
 
Ad

More from Graham Weldon (13)

PDF
HackLang Introduction
Graham Weldon
 
PPT
20130714 php matsuri - highly available php
Graham Weldon
 
KEY
CakePHP and Open Source - Newcastle University
Graham Weldon
 
KEY
SydPHP June 2012 - GovHack overview
Graham Weldon
 
KEY
SydPHP April 2012
Graham Weldon
 
KEY
Building 3D apps with Javascript
Graham Weldon
 
KEY
MySQL Performance - SydPHP October 2011
Graham Weldon
 
KEY
Nginx in production
Graham Weldon
 
KEY
The business behind open source
Graham Weldon
 
PDF
CakePHP Tutorial - OSDC 2010
Graham Weldon
 
PDF
Debugging and Profiling PHP
Graham Weldon
 
PDF
OSDC LIghtning Talk - Context Free Art
Graham Weldon
 
PDF
Re-imagining CakePHP (OSDC 2010)
Graham Weldon
 
HackLang Introduction
Graham Weldon
 
20130714 php matsuri - highly available php
Graham Weldon
 
CakePHP and Open Source - Newcastle University
Graham Weldon
 
SydPHP June 2012 - GovHack overview
Graham Weldon
 
SydPHP April 2012
Graham Weldon
 
Building 3D apps with Javascript
Graham Weldon
 
MySQL Performance - SydPHP October 2011
Graham Weldon
 
Nginx in production
Graham Weldon
 
The business behind open source
Graham Weldon
 
CakePHP Tutorial - OSDC 2010
Graham Weldon
 
Debugging and Profiling PHP
Graham Weldon
 
OSDC LIghtning Talk - Context Free Art
Graham Weldon
 
Re-imagining CakePHP (OSDC 2010)
Graham Weldon
 

Recently uploaded (20)

PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Doc9.....................................
SofiaCollazos
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 

Re-imaginging CakePHP

Editor's Notes

  • #10: startTest and endTest are deprecated- > now use setUp() and tearDown()
  • #12: Sanified
  • #35: No. Well, you are free to grab a clone of the repository But we’re not committing to a release date, theres so much to do!