• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Re-imagining CakePHP (OSDC 2010)

on

  • 1,051 views

My presentation at OSDC 2010 in Melbourne Australia, for the roadmap of CakePHP and the changes that have occurred as part of the CakePHP 2.0 development process.

My presentation at OSDC 2010 in Melbourne Australia, for the roadmap of CakePHP and the changes that have occurred as part of the CakePHP 2.0 development process.

Statistics

Views

Total Views
1,051
Views on SlideShare
809
Embed Views
242

Actions

Likes
0
Downloads
11
Comments
0

3 Embeds 242

http://grahamweldon.com 223
http://grahamweldon.dev 13
http://coderwall.com 6

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • startTest and endTest are deprecated- > now use setUp() and tearDown()\n\n
  • \n
  • Sane-ified\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 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
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Re-imagining CakePHP (OSDC 2010) Re-imagining CakePHP (OSDC 2010) Presentation Transcript

  • Re-imagining CakePHP The path to CakePHP 2.0
  • Graham Weldon@predominantgraham.weldon@cakedc.comhttp://cakedc.comhttp://grahamweldon.com
  • Its my birthday
  • Kawasaki Ninja
  • Arduino
  • Games
  • Captain Jack
  • CakePHP Community
  • MotivationsLove CakePHPHate doing repetitive codeLove to teach
  • ... 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
  • ChallengesRetain older users and backwardscompatibilityMove forward and adopt new featuresStay true to the projects goals and idealsRattle some cages... not too many.
  • PHPSupport Adios PHP 4
  • PHP SupportDropping PHP 4 supportSupporting PHP 5.2.6 and above Later.. PHP 5.3 and above
  • Err.. PHP 5.2 is DeadUsers / community are more important thanadopting latest technology“Be mindful of the future, but not at theexpense of the moment.”Push forward where we can, but retain theusers.
  • Carefully balanced Deprecate AddRemove Dream Current Code
  • Carefully balanced Deprecate AddRemove Dream Current Code
  • Carefully balanced Deprecate AddRemove Dream Current Code
  • Carefully balanced Deprecate AddRemove Dream Current Code
  • Don’t move too fast AddRemove
  • Don’t move too fast AddRemove Migration?!
  • ShortcutsRemoved: file_put_contents()e() => echo uses() => Appa() => array array_combine()aa() => assoc array cache() => Cacher() => str_replace array_diff_key()ife() => if / ternary array_intersect_key()params() http_build_query()up() => strtoupperlow() => strtolower PHP5 constant
  • Unit TestingOut with the SimpleTest In with the PHPUnit
  • Unit TestingArguably one of the bigger changesPHPUnit Provides better PHP 5 support over SimpleTest More actively maintained Easily integrated with CruiseControl De-facto standard for Unit Testing in PHPInstall with PEARFaster
  • Unit TestingPHPUnit, at what cost?Rewritten test suite from the ground upNo more group testsMocks are different.. but awesome++startTest() and endTest() deprecated.. thats about it.
  • Collections Organising
  • CollectionsBehaviorsComponentsHelpersShells
  • Components
  • Components
  • ComponentsWhat does this mean in the scheme ofthings?We’ve standardised the manner in whichobjects inheritMakes more senseLess need to search documentation
  • SPLReplacing what we can
  • SPLStandard PHP LibraryProvides awesome File and FolderoperationsClasses handy for a whole range of thingsNo need to re-implement in the coreCakePHP 1.x was ahead of its timePHP has caught upTime to cut the fat
  • Non-SPLAgain, don’t reinvent the wheelRemoving duplicate code like JSONencodingCan now rely on this functionality shippingwith PHP
  • Exceptions
  • ExceptionsUsing exceptions to indicate errors in thecoreEasier to controlMore “OO”Removing cakeError
  • RequestResponseRefactoring, 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
  • SessionsRemove duplicated code (DRY)Shouldn’t be always included (1.3 fix)Modelise data handlingAccess anywhereAllow simple customisationSeparate Caching, Database, etc.
  • Sessions
  • Sessions SessionHandlerDatabase Cache PHP
  • Sessions SessionHandlerDatabase Cache PHP
  • Sessions SessionHandlerDatabase Cache PHP Your Crazy Engine
  • Sessions SessionHandlerDatabase Cache PHP Cake Session Your Crazy Engine Handler Interface
  • Hang on! That looks familiar
  • Javascript (v1.3) JavascriptHelperjQuery Prototype Mootools
  • Javascript (v1.3) JavascriptHelperjQuery Prototype Mootools
  • Javascript (v1.3) JavascriptHelperjQuery Prototype Mootools Your Super Engine
  • Javascript (v1.3) JavascriptHelperjQuery Prototype Mootools Your Super Engine JsBaseEngineHelper
  • LazyLoading
  • Lazy LoadingNested Objects (some of them) Components Helpers TasksCheap Optimisation
  • XMLMaking it make sense!
  • XMLAs much as one can make XML make sense.... we’re doing it1.x was very CakePHP specific with XMLWasn’t handy for integrationDidn’t handle namespaces wellDidn’t allow for ordered nodesBuild on top of SimpleXMLFaster
  • PDOIts about time!!
  • PDOYes, dear God yes!PDO drivers currently being worked onMostly completeSome issues with Postgresql still remainingWorking with Microsoft to get MSSQLsupport finalised with new PDO drivers
  • ConsoleThe shell is more popularthan we initially planned
  • ConsoleEasier help generation Better for users of plugins, as well as plugin developersColourised console text Easy identification of issues and errorsSupport output verbosityShells are being used: restructure: app/console/ Moved from: app/vendors/Enable better console path configurability
  • ViewsEnabling more control for plugins, and reordering
  • ViewsCallbacks changedAs the framework matured: People build new plugins Plugins need control Want to alter outputOrder of operation changed
  • Viewsevaluate scriptsevaluate contentbeforeLayout()beforeRender()render()
  • ViewsbeforeLayout()beforeRender()evaluate scriptsevaluate contentrender()
  • EmailEmail from anywhere! Its the future!
  • EmailUsed to be restricted to Controller use witha Component ... or a terrible hack to enable it elsewhereNow its a core libUse it anywhereWrappers to provide model / controller useSimple, and effective
  • DebuggingYou’ve been waiting for this one... at least, we have.
  • DebuggingNo more HTML output in console debuggingUses Ascii blocks to distinguish itself
  • Gettingfeedback
  • I can has?
  • 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?
  • Questions? Comments?Birthday Presents? Slides will be available here: http://www.slideshare.net/predominant
  • Graham Weldon@predominantgraham.weldon@cakedc.comhttp://cakedc.comhttp://grahamweldon.com