SlideShare a Scribd company logo
Schedule Change

 Using the new PostreSQL 9.0
 Cancelled


 Now:
 CakePHP: The path to 2.0
Re-imagining
  CakePHP
  The path to CakePHP 2.0
Graham Weldon
@predominant


graham.weldon@cakedc.com


http://cakedc.com


http://grahamweldon.com
Kawasaki
  Ninja
Arduino
Games
Captain Jack
CakePHP Community
Motivations

Love CakePHP


Hate doing repetitive code


Love to teach
... its been a year
... its been a year
 We talked about CakePHP 2.0 at
 CakeMatsuri in 2009
... its been a year
 We talked about CakePHP 2.0 at
 CakeMatsuri in 2009
 Instead of releasing CakePHP 2.0 that “just
 works” with PHP5
... its been a year
 We talked about CakePHP 2.0 at
 CakeMatsuri in 2009
 Instead of releasing CakePHP 2.0 that “just
 works” with PHP5
 Refactoring the core
... its been a year
 We talked about CakePHP 2.0 at
 CakeMatsuri in 2009
 Instead of releasing CakePHP 2.0 that “just
 works” with PHP5
 Refactoring the core
 Exciting changes instead of a quick fix
... its been a year
 We talked about CakePHP 2.0 at
 CakeMatsuri in 2009
 Instead of releasing CakePHP 2.0 that “just
 works” with PHP5
 Refactoring the core
 Exciting changes instead of a quick fix
 Look at code that has been around for 4+
 years
... its been a year
 We talked about CakePHP 2.0 at
 CakeMatsuri in 2009
 Instead of releasing CakePHP 2.0 that “just
 works” with PHP5
 Refactoring the core
 Exciting changes instead of a quick fix
 Look at code that has been around for 4+
 years
 Remove a lot of code thats no longer
 needed
Challenges
Challenges
Retain older users and backwards
compatibility
Challenges
Retain older users and backwards
compatibility
Move forward and adopt new features
Challenges
Retain older users and backwards
compatibility
Move forward and adopt new features
Stay true to the projects goals and ideals
Challenges
Retain older users and backwards
compatibility
Move forward and adopt new features
Stay true to the projects goals and ideals
Rattle some cages
Challenges
Retain older users and backwards
compatibility
Move forward and adopt new features
Stay true to the projects goals and ideals
Rattle some cages
... not too many.
PHP
Support
 Adios PHP 4
[ Pause pour
applaudissements]
     [ Pause for clapping ]
PHP Support
PHP Support

Dropping PHP 4 support
PHP Support

Dropping PHP 4 support
PHP Support

Dropping PHP 4 support


Supporting PHP 5.2.6 and above
PHP Support

Dropping PHP 4 support


Supporting PHP 5.2.6 and above
 Later.. PHP 5.3 and above
Err.. PHP 5.2
   is Dead
Err.. PHP 5.2
     is Dead

Users / community are more important than
adopting latest technology
Err.. PHP 5.2
         is Dead
   “Be mindful of the future, but
not at the expense of the moment.”
Err.. PHP 5.2
   is Dead
Err.. PHP 5.2
     is Dead

Push forward where we can, but retain the
users.
Carefully balanced
Carefully balanced

   Current Code
Carefully balanced
 Deprecate                  Add
Remove                            Dream
             Current Code
Carefully balanced
 Deprecate                     Add
Remove                               Dream
             Current Code

                Current Code
Carefully balanced
 Deprecate                     Add
Remove                               Dream
             Current Code

                Current Code

                   Current Code
Carefully balanced
 Deprecate                     Add
Remove                               Dream
             Current Code

                Current Code

                   Current Code

                      Current Code
Don’t move too fast
                      Add
Remove
Don’t move too fast
                      Add
Remove




           Migration?!
Shortcuts
Shortcuts
Removed:                file_put_contents()
e() => echo             uses() => App
a() => array            array_combine()
aa() => assoc array     cache() => Cache
r() => str_replace      array_diff_key()
ife() => if / ternary   array_intersect_key()
params()                http_build_query()
up() => strtoupper
low() => strtolower     PHP5 constant
Shortcuts
Shortcuts
Removed:
getMicrotime()
r() => str_replace
$TIME_START
Unit
 Testing
Out with the SimpleTest
  In with the PHPUnit
Unit Testing
Unit Testing
Arguably one of the bigger changes
Unit Testing
Arguably one of the bigger changes
PHPUnit
Unit Testing
Arguably one of the bigger changes
PHPUnit
 Provides better PHP 5 support over
 SimpleTest
Unit Testing
Arguably one of the bigger changes
PHPUnit
 Provides better PHP 5 support over
 SimpleTest
 More actively maintained
Unit Testing
Arguably one of the bigger changes
PHPUnit
 Provides better PHP 5 support over
 SimpleTest
 More actively maintained
 Easily integrated with CruiseControl
Unit Testing
Arguably one of the bigger changes
PHPUnit
 Provides better PHP 5 support over
 SimpleTest
 More actively maintained
 Easily integrated with CruiseControl
 De-facto standard for Unit Testing in PHP
Unit Testing
Arguably one of the bigger changes
PHPUnit
 Provides better PHP 5 support over
 SimpleTest
 More actively maintained
 Easily integrated with CruiseControl
 De-facto standard for Unit Testing in PHP
Install with PEAR
Unit Testing
Arguably one of the bigger changes
PHPUnit
 Provides better PHP 5 support over
 SimpleTest
 More actively maintained
 Easily integrated with CruiseControl
 De-facto standard for Unit Testing in PHP
Install with PEAR
Faster
Unit Testing
Unit Testing
More powerful
Unit Testing
More powerful
More awesome
Unit Testing
More powerful
More awesome
More...
Unit Testing
More powerful
More awesome
More...
Unit Testing
More powerful
More awesome
More...


More info?
Unit Testing
More powerful
More awesome
More...


More info?
 http://phpunit.de
Unit Testing
Unit Testing
PHPUnit, at what cost?
Unit Testing
PHPUnit, at what cost?
Rewritten test suite from the ground up
Unit Testing
PHPUnit, at what cost?
Rewritten test suite from the ground up
Mocks are different.. but awesome++
Unit Testing
PHPUnit, at what cost?
Rewritten test suite from the ground up
Mocks are different.. but awesome++
startTest() and endTest() deprecated
Unit Testing
PHPUnit, at what cost?
Rewritten test suite from the ground up
Mocks are different.. but awesome++
startTest() and endTest() deprecated
assertions slightly different
Unit Testing
PHPUnit, at what cost?
Rewritten test suite from the ground up
Mocks are different.. but awesome++
startTest() and endTest() deprecated
assertions slightly different
.. thats about it.
Unit Testing
No more group tests
 But theres a PHP Unit way to achieve this
Collections
   Organising
Collections

Behaviors
Components
Helpers
Shells
Components
Components
Components
Components
What does this mean in the scheme of
things?
Components
What does this mean in the scheme of
things?
We’ve standardised the manner in which
objects inherit
Components
What does this mean in the scheme of
things?
We’ve standardised the manner in which
objects inherit
Makes more sense
Components
What does this mean in the scheme of
things?
We’ve standardised the manner in which
objects inherit
Makes more sense
Intuitive
Components
What does this mean in the scheme of
things?
We’ve standardised the manner in which
objects inherit
Makes more sense
Intuitive
Less need to search documentation
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
Non-SPL

Again, don’t reinvent the wheel
Removing duplicate code like JSON
encoding
Can now rely on this functionality shipping
with PHP
Exceptions
Exceptions

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

 Request represents an incoming request
 It replaces functionality through Controller,
 Dispatcher, RequestHandler and $this-
 >params everywhere
 ArrayAccess implementation for backwards
 compatibility
Request / Response

 Protect users form themselves
 Protect developers from users
 Protect developers from stupidity
 Encapsulate both the request and response
 in order to provide a central location to
 handle requests and responses, but retain
 flexibility
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
XML
As much as one can make XML make sense..
XML
As much as one can make XML make sense..
.. we’re doing it
XML
As much as one can make XML make sense..
.. we’re doing it
1.x was very CakePHP specific with XML
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
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
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
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
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
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
Faster
Console
The shell is more popular
than we initially planned
Console
Console
Easier help generation
Console
Easier help generation
 Better for users of plugins, as well as
 plugin developers
Console
Easier help generation
 Better for users of plugins, as well as
 plugin developers
Colourised console text
Console
Easier help generation
 Better for users of plugins, as well as
 plugin developers
Colourised console text
 Easy identification of issues and errors
Console
Easier help generation
 Better for users of plugins, as well as
 plugin developers
Colourised console text
 Easy identification of issues and errors
Support output verbosity
Console
Easier help generation
 Better for users of plugins, as well as
 plugin developers
Colourised console text
 Easy identification of issues and errors
Support output verbosity
Shells are being used:
Console
Easier help generation
 Better for users of plugins, as well as
 plugin developers
Colourised console text
 Easy identification of issues and errors
Support output verbosity
Shells are being used:
 restructure: app/console/
Console
Easier help generation
 Better for users of plugins, as well as
 plugin developers
Colourised console text
 Easy identification of issues and errors
Support output verbosity
Shells are being used:
 restructure: app/console/
 Moved from: app/vendors/
Console
Easier help generation
 Better for users of plugins, as well as
 plugin developers
Colourised console text
 Easy identification of issues and errors
Support output verbosity
Shells are being used:
 restructure: app/console/
 Moved from: app/vendors/
Enable better console path configurability
Views
Enabling more control for
 plugins, and reordering
Views
Callbacks changed
As the framework matured:
 People built new plugins
 Plugins need control
 Want to alter output
Order of operation changed
Views

evaluate scripts
evaluate content
beforeLayout()
beforeRender()
render()
Views

beforeLayout()
beforeRender()
evaluate scripts
evaluate content
render()
Email
Email from anywhere!
   Its the future!
Email
Email
Used to be restricted to Controller use with
a Component
Email
Used to be restricted to Controller use with
a Component
 ... or a terrible hack to enable it elsewhere
Email
Used to be restricted to Controller use with
a Component
 ... or a terrible hack to enable it elsewhere
Now its a core lib
Email
Used to be restricted to Controller use with
a Component
 ... or a terrible hack to enable it elsewhere
Now its a core lib
Use it anywhere
Email
Used to be restricted to Controller use with
a Component
 ... or a terrible hack to enable it elsewhere
Now its a core lib
Use it anywhere
Wrappers to provide model / controller use
Email
Used to be restricted to Controller use with
a Component
 ... or a terrible hack to enable it elsewhere
Now its a core lib
Use it anywhere
Wrappers to provide model / controller use
Simple, and effective
New Features
PDO
Its about time!!
PDO

Yes, dear God yes!
PDO datasources now available in 2.0
Working with Microsoft to get MSSQL
support finalised with new PDO drivers
Rewriting
  URLs
Simplifying request data
Rewriting URLs
Rewriting URLs
Previously:
Rewriting URLs
Previously:
 /index.php?url=controller/action/data
Rewriting URLs
Previously:
 /index.php?url=controller/action/data
Now:
Rewriting URLs
Previously:
 /index.php?url=controller/action/data
Now:
 /index.php/controller/action/data
Rewriting URLs
Previously:
 /index.php?url=controller/action/data
Now:
 /index.php/controller/action/data
Rewriting URLs
Previously:
 /index.php?url=controller/action/data
Now:
 /index.php/controller/action/data


What does that mean for developers?
Rewriting URLs
Rewriting URLs

Simplifies internal structure for rewriting
Rewriting URLs

Simplifies internal structure for rewriting
Easier cross-server operation
Rewriting URLs

Simplifies internal structure for rewriting
Easier cross-server operation
 Various rewriting mechanisms
Rewriting URLs

Simplifies internal structure for rewriting
Easier cross-server operation
 Various rewriting mechanisms
 Non-apache installs
Named Params
Now allows arrays to be passed
Even allows nested arrays
Named Params
Auth
Authentication
Authentication
Completely refactored
Authentication
Completely refactored
No longer automatically hashes all
passwords
Authentication
Completely refactored
No longer automatically hashes all
passwords
Authentication handlers
Authentication
Completely refactored
No longer automatically hashes all
passwords
Authentication handlers
Custom authentication objects
Authentication
Completely refactored
No longer automatically hashes all
passwords
Authentication handlers
Custom authentication objects
Manually login a user
Authentication
Completely refactored
No longer automatically hashes all
passwords
Authentication handlers
Custom authentication objects
Manually login a user
Basic Authentication
Authentication
Completely refactored
No longer automatically hashes all
passwords
Authentication handlers
Custom authentication objects
Manually login a user
Basic Authentication
Digest Authentication
Authentication
Completely refactored
No longer automatically hashes all
passwords
Authentication handlers
Custom authentication objects
Manually login a user
Basic Authentication
Digest Authentication
Stateless Authentication
Authentication
Completely refactored
No longer automatically hashes all
passwords
Authentication handlers
Custom authentication objects
Manually login a user
Basic Authentication
Digest Authentication
Stateless Authentication
Full details:
Debugging
You’ve been waiting for this
  one... at least, we have.
Debugging
No more HTML output in console debugging
Uses Ascii blocks to distinguish itself
Full Details
Full Details

Lighthouse app
Full Details

Lighthouse app
http://cakephp.lighthouseapp.com/
projects/42648-cakephp
Getting
feedback
I can has?
CakePHP Release
     Cycle
Dev
Dev




Alpha
Dev




Alpha




Beta
Release
Dev     Candidate
           #1




Alpha




Beta
Release
Dev     Candidate
           #1




         Release
Alpha   Candidate
           #2




Beta
Release
Dev     Candidate
           #1




         Release
Alpha   Candidate
           #2




         Release
Beta    Candidate
           #3
Release
Dev     Candidate   Stable
           #1




         Release
Alpha   Candidate
           #2




         Release
Beta    Candidate
           #3
Release
Dev     Candidate   Stable
           #1




         Release     Patches
Alpha   Candidate
           #2
                     Patches



                     Patches

         Release
Beta    Candidate
                       ...
           #3
Release
Dev     Candidate   Stable
           #1




         Release     Patches
Alpha   Candidate
           #2
                     Patches



                     Patches

         Release
Beta    Candidate
                       ...
           #3
Grab the code

http://cakephp.org
http://github.com/cakephp/cakephp
 Branch: 2.0
Questions?
Comments?
Free hugs?

Slides will be available here:
http://www.slideshare.net/predominant
Graham Weldon
@predominant


graham.weldon@cakedc.com


http://cakedc.com


http://grahamweldon.com

More Related Content

What's hot

Moving Pictures - Web 2.0 Expo NYC
Moving Pictures - Web 2.0 Expo NYCMoving Pictures - Web 2.0 Expo NYC
Moving Pictures - Web 2.0 Expo NYCCal Henderson
 
The Power Of Refactoring (PHPNW)
The Power Of Refactoring (PHPNW)The Power Of Refactoring (PHPNW)
The Power Of Refactoring (PHPNW)
Stefan Koopmanschap
 
2021laravelconftwslides6
2021laravelconftwslides62021laravelconftwslides6
2021laravelconftwslides6
LiviaLiaoFontech
 
Coldfusion
ColdfusionColdfusion
ColdfusionRam
 
Integrating symfony and Zend Framework (PHPBarcelona 2009)
Integrating symfony and Zend Framework (PHPBarcelona 2009)Integrating symfony and Zend Framework (PHPBarcelona 2009)
Integrating symfony and Zend Framework (PHPBarcelona 2009)
Stefan Koopmanschap
 
SydPHP May 2012 - Deployment
SydPHP May 2012 - DeploymentSydPHP May 2012 - Deployment
SydPHP May 2012 - DeploymentGraham Weldon
 
Console Apps: php artisan forthe:win
Console Apps: php artisan forthe:winConsole Apps: php artisan forthe:win
Console Apps: php artisan forthe:win
Joe Ferguson
 
Taming the resource tiger
Taming the resource tigerTaming the resource tiger
Taming the resource tiger
Elizabeth Smith
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
Jonas Brømsø
 
Upstate CSCI 450 PHP Chapters 5, 12, 13
Upstate CSCI 450 PHP Chapters 5, 12, 13Upstate CSCI 450 PHP Chapters 5, 12, 13
Upstate CSCI 450 PHP Chapters 5, 12, 13
DanWooster1
 
mod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLImod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLI
Jacques Woodcock
 
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Tim Bunce
 
What's the "right" PHP Framework?
What's the "right" PHP Framework?What's the "right" PHP Framework?
What's the "right" PHP Framework?
Barry Jones
 
Perl-Critic
Perl-CriticPerl-Critic
Perl-Critic
Jonas Brømsø
 
Test automation with Cucumber-JVM
Test automation with Cucumber-JVMTest automation with Cucumber-JVM
Test automation with Cucumber-JVM
Alan Parkinson
 
Maven - Taming the Beast
Maven - Taming the BeastMaven - Taming the Beast
Maven - Taming the Beast
Roberto Cortez
 
Building Big on the Web
Building Big on the WebBuilding Big on the Web
Building Big on the Web
Cal Henderson
 
A look at FastCgi & Mod_PHP architecture
A look at FastCgi & Mod_PHP architectureA look at FastCgi & Mod_PHP architecture
A look at FastCgi & Mod_PHP architecture
Aimee Maree Forsstrom
 

What's hot (20)

Moving Pictures - Web 2.0 Expo NYC
Moving Pictures - Web 2.0 Expo NYCMoving Pictures - Web 2.0 Expo NYC
Moving Pictures - Web 2.0 Expo NYC
 
The Power Of Refactoring (PHPNW)
The Power Of Refactoring (PHPNW)The Power Of Refactoring (PHPNW)
The Power Of Refactoring (PHPNW)
 
2021laravelconftwslides6
2021laravelconftwslides62021laravelconftwslides6
2021laravelconftwslides6
 
Coldfusion
ColdfusionColdfusion
Coldfusion
 
Integrating symfony and Zend Framework (PHPBarcelona 2009)
Integrating symfony and Zend Framework (PHPBarcelona 2009)Integrating symfony and Zend Framework (PHPBarcelona 2009)
Integrating symfony and Zend Framework (PHPBarcelona 2009)
 
SydPHP May 2012 - Deployment
SydPHP May 2012 - DeploymentSydPHP May 2012 - Deployment
SydPHP May 2012 - Deployment
 
Console Apps: php artisan forthe:win
Console Apps: php artisan forthe:winConsole Apps: php artisan forthe:win
Console Apps: php artisan forthe:win
 
Taming the resource tiger
Taming the resource tigerTaming the resource tiger
Taming the resource tiger
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
Upstate CSCI 450 PHP Chapters 5, 12, 13
Upstate CSCI 450 PHP Chapters 5, 12, 13Upstate CSCI 450 PHP Chapters 5, 12, 13
Upstate CSCI 450 PHP Chapters 5, 12, 13
 
mod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLImod_php vs FastCGI vs FPM vs CLI
mod_php vs FastCGI vs FPM vs CLI
 
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
 
What's the "right" PHP Framework?
What's the "right" PHP Framework?What's the "right" PHP Framework?
What's the "right" PHP Framework?
 
Scalable PHP
Scalable PHPScalable PHP
Scalable PHP
 
Perl-Critic
Perl-CriticPerl-Critic
Perl-Critic
 
Test automation with Cucumber-JVM
Test automation with Cucumber-JVMTest automation with Cucumber-JVM
Test automation with Cucumber-JVM
 
Cfml features modern_coding
Cfml features modern_codingCfml features modern_coding
Cfml features modern_coding
 
Maven - Taming the Beast
Maven - Taming the BeastMaven - Taming the Beast
Maven - Taming the Beast
 
Building Big on the Web
Building Big on the WebBuilding Big on the Web
Building Big on the Web
 
A look at FastCgi & Mod_PHP architecture
A look at FastCgi & Mod_PHP architectureA look at FastCgi & Mod_PHP architecture
A look at FastCgi & Mod_PHP architecture
 

Similar to CakePHP - The Path to 2.0

CakePHP 2.0 - It'll rock your world
CakePHP 2.0 - It'll rock your worldCakePHP 2.0 - It'll rock your world
CakePHP 2.0 - It'll rock your world
Graham Weldon
 
CodePolitan Webinar: The Rise of PHP
CodePolitan Webinar: The Rise of PHPCodePolitan Webinar: The Rise of PHP
CodePolitan Webinar: The Rise of PHP
Steeven Salim
 
Heroku + Jeweler & Gemcutter
Heroku + Jeweler & GemcutterHeroku + Jeweler & Gemcutter
Heroku + Jeweler & Gemcutter
Ariejan de Vroom
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To Know
All Things Open
 
PHP 8: What's New and Changed
PHP 8: What's New and ChangedPHP 8: What's New and Changed
PHP 8: What's New and Changed
Ayesh Karunaratne
 
NDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my MoncaiNDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my Moncai
moncai
 
Evolving Archetecture
Evolving ArchetectureEvolving Archetecture
Evolving Archetecture
leo lapworth
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
Ken Collins
 
Performance Tuning with XHProf
Performance Tuning with XHProfPerformance Tuning with XHProf
Performance Tuning with XHProf
Salesforce Engineering
 
Site Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariSite Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariJoseph Scott
 
Listen and look at your PHP code
Listen and look at your PHP codeListen and look at your PHP code
Listen and look at your PHP codeGabriele Santini
 
Intro to Muon - How to build Polyglot Message and Event Microservices
Intro to Muon - How to build Polyglot Message and Event MicroservicesIntro to Muon - How to build Polyglot Message and Event Microservices
Intro to Muon - How to build Polyglot Message and Event Microservices
David Dawson
 
How Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build HerokuHow Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build HerokuCraig Kerstiens
 
Keep calms and Docker On ... Innotech
Keep calms and Docker On ... InnotechKeep calms and Docker On ... Innotech
Keep calms and Docker On ... Innotech
Boyd Hemphill
 
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Boyd Hemphill
 
Streaming 101: Hello World
Streaming 101:  Hello WorldStreaming 101:  Hello World
Streaming 101: Hello World
Josh Fischer
 
Development workflow
Development workflowDevelopment workflow
Development workflowSigsiu.NET
 
How to Reverse Engineer Web Applications
How to Reverse Engineer Web ApplicationsHow to Reverse Engineer Web Applications
How to Reverse Engineer Web Applications
Jarrod Overson
 

Similar to CakePHP - The Path to 2.0 (20)

CakePHP 2.0 - It'll rock your world
CakePHP 2.0 - It'll rock your worldCakePHP 2.0 - It'll rock your world
CakePHP 2.0 - It'll rock your world
 
CodePolitan Webinar: The Rise of PHP
CodePolitan Webinar: The Rise of PHPCodePolitan Webinar: The Rise of PHP
CodePolitan Webinar: The Rise of PHP
 
Heroku + Jeweler & Gemcutter
Heroku + Jeweler & GemcutterHeroku + Jeweler & Gemcutter
Heroku + Jeweler & Gemcutter
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To Know
 
PHP 8: What's New and Changed
PHP 8: What's New and ChangedPHP 8: What's New and Changed
PHP 8: What's New and Changed
 
NDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my MoncaiNDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my Moncai
 
Evolving Archetecture
Evolving ArchetectureEvolving Archetecture
Evolving Archetecture
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
Performance Tuning with XHProf
Performance Tuning with XHProfPerformance Tuning with XHProf
Performance Tuning with XHProf
 
Site Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariSite Performance - From Pinto to Ferrari
Site Performance - From Pinto to Ferrari
 
Listen and look at your PHP code
Listen and look at your PHP codeListen and look at your PHP code
Listen and look at your PHP code
 
DevOps for Developers
DevOps for DevelopersDevOps for Developers
DevOps for Developers
 
Intro to Muon - How to build Polyglot Message and Event Microservices
Intro to Muon - How to build Polyglot Message and Event MicroservicesIntro to Muon - How to build Polyglot Message and Event Microservices
Intro to Muon - How to build Polyglot Message and Event Microservices
 
How Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build HerokuHow Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build Heroku
 
Keep calms and Docker On ... Innotech
Keep calms and Docker On ... InnotechKeep calms and Docker On ... Innotech
Keep calms and Docker On ... Innotech
 
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
 
Dev ops for developers
Dev ops for developersDev ops for developers
Dev ops for developers
 
Streaming 101: Hello World
Streaming 101:  Hello WorldStreaming 101:  Hello World
Streaming 101: Hello World
 
Development workflow
Development workflowDevelopment workflow
Development workflow
 
How to Reverse Engineer Web Applications
How to Reverse Engineer Web ApplicationsHow to Reverse Engineer Web Applications
How to Reverse Engineer Web Applications
 

More from Graham Weldon

HackLang Introduction
HackLang IntroductionHackLang Introduction
HackLang Introduction
Graham Weldon
 
20130714 php matsuri - highly available php
20130714   php matsuri - highly available php20130714   php matsuri - highly available php
20130714 php matsuri - highly available phpGraham Weldon
 
CakePHP and Open Source - Newcastle University
CakePHP and Open Source - Newcastle UniversityCakePHP and Open Source - Newcastle University
CakePHP and Open Source - Newcastle University
Graham Weldon
 
SydPHP June 2012 - GovHack overview
SydPHP June 2012 - GovHack overviewSydPHP June 2012 - GovHack overview
SydPHP June 2012 - GovHack overview
Graham Weldon
 
SydPHP April 2012
SydPHP April 2012SydPHP April 2012
SydPHP April 2012
Graham Weldon
 
Building 3D apps with Javascript
Building 3D apps with JavascriptBuilding 3D apps with Javascript
Building 3D apps with Javascript
Graham Weldon
 
MySQL Performance - SydPHP October 2011
MySQL Performance - SydPHP October 2011MySQL Performance - SydPHP October 2011
MySQL Performance - SydPHP October 2011
Graham Weldon
 
The business behind open source
The business behind open sourceThe business behind open source
The business behind open source
Graham Weldon
 
CakePHP Tutorial - OSDC 2010
CakePHP Tutorial - OSDC 2010CakePHP Tutorial - OSDC 2010
CakePHP Tutorial - OSDC 2010
Graham Weldon
 
Debugging and Profiling PHP
Debugging and Profiling PHPDebugging and Profiling PHP
Debugging and Profiling PHP
Graham Weldon
 
OSDC LIghtning Talk - Context Free Art
OSDC LIghtning Talk - Context Free ArtOSDC LIghtning Talk - Context Free Art
OSDC LIghtning Talk - Context Free Art
Graham Weldon
 
Re-imagining CakePHP (OSDC 2010)
Re-imagining CakePHP (OSDC 2010)Re-imagining CakePHP (OSDC 2010)
Re-imagining CakePHP (OSDC 2010)
Graham Weldon
 

More from Graham Weldon (13)

HackLang Introduction
HackLang IntroductionHackLang Introduction
HackLang Introduction
 
20130714 php matsuri - highly available php
20130714   php matsuri - highly available php20130714   php matsuri - highly available php
20130714 php matsuri - highly available php
 
CakePHP and Open Source - Newcastle University
CakePHP and Open Source - Newcastle UniversityCakePHP and Open Source - Newcastle University
CakePHP and Open Source - Newcastle University
 
SydPHP June 2012 - GovHack overview
SydPHP June 2012 - GovHack overviewSydPHP June 2012 - GovHack overview
SydPHP June 2012 - GovHack overview
 
SydPHP April 2012
SydPHP April 2012SydPHP April 2012
SydPHP April 2012
 
Building 3D apps with Javascript
Building 3D apps with JavascriptBuilding 3D apps with Javascript
Building 3D apps with Javascript
 
MySQL Performance - SydPHP October 2011
MySQL Performance - SydPHP October 2011MySQL Performance - SydPHP October 2011
MySQL Performance - SydPHP October 2011
 
Nginx in production
Nginx in productionNginx in production
Nginx in production
 
The business behind open source
The business behind open sourceThe business behind open source
The business behind open source
 
CakePHP Tutorial - OSDC 2010
CakePHP Tutorial - OSDC 2010CakePHP Tutorial - OSDC 2010
CakePHP Tutorial - OSDC 2010
 
Debugging and Profiling PHP
Debugging and Profiling PHPDebugging and Profiling PHP
Debugging and Profiling PHP
 
OSDC LIghtning Talk - Context Free Art
OSDC LIghtning Talk - Context Free ArtOSDC LIghtning Talk - Context Free Art
OSDC LIghtning Talk - Context Free Art
 
Re-imagining CakePHP (OSDC 2010)
Re-imagining CakePHP (OSDC 2010)Re-imagining CakePHP (OSDC 2010)
Re-imagining CakePHP (OSDC 2010)
 

Recently uploaded

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 

Recently uploaded (20)

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 

CakePHP - The Path to 2.0

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. startTest and endTest are deprecated- > now use setUp() and tearDown()\n\n
  82. startTest and endTest are deprecated- > now use setUp() and tearDown()\n\n
  83. startTest and endTest are deprecated- > now use setUp() and tearDown()\n\n
  84. startTest and endTest are deprecated- > now use setUp() and tearDown()\n\n
  85. startTest and endTest are deprecated- > now use setUp() and tearDown()\n\n
  86. startTest and endTest are deprecated- > now use setUp() and tearDown()\n\n
  87. startTest and endTest are deprecated- > now use setUp() and tearDown()\n\n
  88. \n
  89. Sane-ified\n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n
  144. \n
  145. \n
  146. \n
  147. \n
  148. \n
  149. \n
  150. \n
  151. \n
  152. \n
  153. \n
  154. \n
  155. \n
  156. \n
  157. \n
  158. \n
  159. \n
  160. \n
  161. \n
  162. \n
  163. \n
  164. \n
  165. \n
  166. \n
  167. \n
  168. \n
  169. \n
  170. \n
  171. \n
  172. \n
  173. \n
  174. \n
  175. \n
  176. \n
  177. \n
  178. \n
  179. \n
  180. \n
  181. \n
  182. \n
  183. No.\nWell, you are free to grab a clone of the repository\nBut we’re not committing to a release date, theres so much to do!\n
  184. \n
  185. \n
  186. \n
  187. \n
  188. \n
  189. \n
  190. \n
  191. \n
  192. \n
  193. \n
  194. \n
  195. \n
  196. \n
  197. \n
  198. \n
  199. \n
  200. \n
  201. \n
  202. \n
  203. \n
  204. \n
  205. \n
  206. \n
  207. \n